6.2 Hilfsfunktionen  
Sie wissen nun, wie Sie Zufallszahlen zwischen 0 und 1 generieren können (von der Funktion zufall_datum() einmal abgesehen); für weitere Funktionalitäten benötigen Sie aber noch einige weitere Funktionen. Natürlich können Sie bei jeder neuen Anwendung dieses Problem erneut lösen, aber der Sinn dieses Buches ist es ja unter anderem, Ihnen diese Arbeit abzunehmen.
6.2.1 Zufallszahl aus einem Bereich  
Math.random() liefert eine Zufallszahl zwischen 0 und 1 zurück. Oft benötigen Sie jedoch eine ganzzahlige Zufallszahl. Dazu müssen Sie die Zahl umrechnen.
Im Folgenden wollen wir etwas machen, bei dem jeder Mathematiker nur den Kopf schütteln würde: Wir wollen mit Intervallen rechnen. Dazu verwenden wir die folgende Intervallschreibweise: ]a, b[ steht für eine Zahl, die zwischen a und b liegt, jedoch weder a noch b ist.
Nun geht es los: Wir wollen eine Zahl ermitteln, die im Intervall ]a, b] liegt. Beginnen wir mit den bereits bekannten Funktionen: Math.random() oder zufall_hp() oder zufall_datum() liefern eine Zahl zwischen 0 und 1 zurück:
]0, 1[
Diese Zahl wollen wir mit b – a + 1 multiplizieren. Also müssen die Grenzen des Intervalls mit diesem Faktor multipliziert werden:
]0, b – a + 1[
Dann wird zur Zahl a hinzugezählt:
]a, b+1[
Sie haben nun eine Zahl erhalten, die größer als a und auf jeden Fall kleiner als b+1 ist. Wenn Sie diese Zahl abrunden, erhalten Sie eine ganze Zahl, die zwischen (jeweils einschließlich) a und b liegt.
Dieser Algorithmus lässt sich leicht in JavaScript umsetzen:
function zufall_intervall(a, b) {
var z = Math.random();
z *= (b – a + 1);
z += a;
return (Math.floor(z));
}
Wenn Sie statt Math.random() lieber auf zufall_hp() setzen möchten, müssen Sie die Funktion lediglich an einer Stelle verändern:
function zufall_intervall_hp(a, b) {
var z = zufall_hp();
z *= (b – a + 1);
z += a;
return (Math.floor(z));
}
|