Heim > Web-Frontend > js-Tutorial > Hauptteil

Zusammenfassung der Methoden zum Generieren von Zufallszahlen in Javascript_Javascript-Kenntnissen

WBOY
Freigeben: 2016-05-16 15:32:34
Original
1433 Leute haben es durchsucht

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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);
Nach dem Login kopieren

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));
Nach dem Login kopieren

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);
Nach dem Login kopieren

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 
Nach dem Login kopieren

2. Basierend auf der Zeit können auch Zufallszahlen generiert werden:

Code kopieren Der Code lautet wie folgt:
var now=new Date();
var number = now.getSeconds(); //Dies generiert eine Ganzzahl von 0 bis 59 basierend auf der aktuellen Zeit.

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>
Nach dem Login kopieren

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) &#63; 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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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.

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!