Heute hat mich ein anderer Internetnutzer gefragt, wie man mit JavaScript Zufallszahlen in einem bestimmten Bereich generiert. Ich glaube, jeder weiß, dass Math.random() eine Methode zur Generierung von Zufallszahlen ist. Im allgemeinen Referenzhandbuch wird jedoch nicht erläutert, wie mit dieser Methode Zufallszahlen innerhalb eines bestimmten Bereichs generiert werden. Dieses Mal werde ich Math.random() im Detail vorstellen und erläutern, wie man damit Zufallszahlen innerhalb eines bestimmten Bereichs generiert.
Das grundlegende Tutorial finden Sie hier
http://www.jb51.net/w3school/js/jsref_random.htm
Nachdem Sie das Tutorial gelesen haben, sollten Sie die grundlegende Verwendung der Math.random()-Methode kennen.
Verwenden Sie parseInt(), Math.floor() oder Math.ceil() zum Runden
Wir sehen, dass die Verwendung der Math.random()-Methode direkt eine Zahl kleiner als 1 generiert, also:
Math.random()*5
Das erhaltene Ergebnis ist eine Zufallszahl kleiner als 5. Normalerweise hoffen wir, eine Ganzzahl zwischen 0 und 5 zu erhalten. Daher müssen wir das Ergebnis runden, um die erwartete Ganzzahl zu erhalten. parseInt(), Math.floor() und Math.ceil() können alle eine Rundungsrolle spielen.
var randomNum = Math.random()*5; alert(randomNum); // 2.9045290905811183 alert(parseInt(randomNum,10)); // 2 alert(Math.floor(randomNum)); // 2 alert(Math.ceil(randomNum)); // 3
Aus dem getesteten Code können wir ersehen, dass parseInt() und Math.floor() den gleichen Effekt haben, wobei beide den ganzzahligen Teil nach unten nehmen. ParseInt(Math.random()*5,10) und Math.floor(Math.random()*5) sind also beide generierte Zufallszahlen zwischen 0 und 4, Math.ceil(Math.random()*5 ) ist eine generierte Zufallszahl zwischen 1 und 5.
Zufallszahlen innerhalb eines angegebenen Bereichs generieren
Wenn Sie also eine Zufallszahl von 1 bis zu einem beliebigen Wert generieren möchten, lautet die Formel wie folgt:
// max - 期望的最大值 parseInt(Math.random()*max,10)+1; Math.floor(Math.random()*max)+1; Math.ceil(Math.random()*max);
Wenn Sie eine Zufallszahl von 0 bis zu einem beliebigen Wert generieren möchten, lautet die Formel wie folgt:
// max - 期望的最大值 parseInt(Math.random()*(max+1),10); Math.floor(Math.random()*(max+1));
Wenn Sie Zufallszahlen von einem beliebigen Wert zu einem beliebigen Wert generieren möchten, lautet die Formel wie folgt:
// max - 期望的最大值 // min - 期望的最小值 parseInt(Math.random()*(max-min+1)+min,10); Math.floor(Math.random()*(max-min+1)+min);
Sehen wir uns andere Möglichkeiten zum Generieren von Zufallszahlen mit Javascript an
1. Verwenden Sie die integrierte Methode zur Zufallszahlengenerierung: (soeben erwähnt, hier ist eine kurze Beschreibung)
Math.random(); //该方法产生一个0到1之间的浮点数。 Math.floor(Math.random()*10+1); //1-10 Math.floor(Math.random()*24);//0-23
2. Basierend auf der Zeit können auch Zufallszahlen generiert werden:
var now=new Date();
var number = now.getSeconds()C; //Dies generiert eine Ganzzahl von 0 bis 42 basierend auf der aktuellen Zeit.
3. Ein sehr gutes Zufallszahlengeneratorprogramm, das in vielen Bereichen eingesetzt werden kann.
<script language="JavaScript"><!-- // The Central Randomizer 1.3 (C) 1997 by Paul Houle (houle@msc.cornell.edu) // See: http://www.msc.cornell.edu/~houle/javascript/randomizer.html rnd.today=new Date(); rnd.seed=rnd.today.getTime(); function rnd() { rnd.seed = (rnd.seed*9301+49297) % 233280; return rnd.seed/(233280.0); }; function rand(number) { return Math.ceil(rnd()*number); }; // end central randomizer. --> </script>
Sehen wir uns zwei konkretere Beispiele an,
Die erste Methode wird durch Umschreiben der Math.random-Methode implementiert, und die zweite Methode wird aus einer C-Implementierung modifiziert, die beide Programmierzwecke erfüllen können.
Beispiel 1:
<script language="javascript"> var native_random = Math.random; Math.random = function(min, max, exact) { if (arguments.length === 0) { return native_random(); } else if (arguments.length === 1) { max = min; min = 0; } var range = min + (native_random()*(max - min)); return exact === void(0) ? Math.round(range) : range.toFixed(exact); }; document.write(Math.random()); document.write('<br />'); document.write(Math.random(10)); document.write('<br />'); document.write(Math.random(3,10)); document.write('<br />'); document.write(Math.random(2,10,4)); </script>
Beispiel 2:
<script type="text/javascript"> var random = (function(){ var high = 1, low = 1 ^ 0x49616E42; var shuffle = function(seed){ high = seed; low = seed ^ 0x49616E42; } return function(){ var a = new Date()-0 shuffle(a); high = (high << 16) + (high >> 16); high += low; low += high; return high; } })(); alert( random() ); </script>
Okay, durch diese Beispiele sollte jeder ein entsprechendes Verständnis für die Generierung von Zufallszahlen mit Javascript haben. Ich hoffe, dieser Artikel kann Ihnen etwas Inspiration geben.