Maison > interface Web > js tutoriel > Résumé des méthodes de génération de nombres aléatoires dans les compétences javascript_javascript

Résumé des méthodes de génération de nombres aléatoires dans les compétences javascript_javascript

WBOY
Libérer: 2016-05-16 15:32:34
original
1497 Les gens l'ont consulté

Aujourd'hui, un autre internaute m'a demandé comment générer des nombres aléatoires dans une plage spécifiée à l'aide de JavaScript. Je pense que tout le monde sait que Math.random() est une méthode utilisée pour générer des nombres aléatoires. Cependant, le manuel de référence général n'explique pas comment utiliser cette méthode pour générer des nombres aléatoires dans une plage spécifiée. Cette fois, je présenterai Math.random() en détail et comment l'utiliser pour générer des nombres aléatoires dans une plage spécifiée.

Veuillez consulter ici pour le tutoriel de base

http://www.jb51.net/w3school/js/jsref_random.htm

Après avoir lu le tutoriel, vous devez connaître l'utilisation de base de la méthode Math.random().

Utilisez parseInt(), Math.floor() ou Math.ceil() pour arrondir

On voit que l'utilisation de la méthode Math.random() génère directement un nombre inférieur à 1, donc :

Math.random()*5
Copier après la connexion

Le résultat obtenu est un nombre aléatoire inférieur à 5. Ce que nous espérons généralement obtenir est un nombre entier compris entre 0 et 5, nous devons donc arrondir le résultat pour obtenir le nombre entier attendu. parseInt(), Math.floor() et Math.ceil() peuvent tous jouer un rôle d'arrondi.

var randomNum = Math.random()*5;
alert(randomNum); // 2.9045290905811183 
alert(parseInt(randomNum,10)); // 2
alert(Math.floor(randomNum)); // 2
alert(Math.ceil(randomNum)); // 3
Copier après la connexion

Nous pouvons voir à partir du code testé que parseInt() et Math.floor() ont le même effet, tous deux prenant la partie entière vers le bas. Ainsi, parseInt(Math.random()*5,10) et Math.floor(Math.random()*5) sont tous deux des nombres aléatoires générés entre 0 et 4, Math.ceil(Math.random()*5 ) est un nombre aléatoire généré entre 1 et 5.

Générer des nombres aléatoires dans une plage spécifiée

Donc, si vous souhaitez générer un nombre aléatoire de 1 à n'importe quelle valeur, la formule est la suivante :

// max - 期望的最大值
parseInt(Math.random()*max,10)+1;
Math.floor(Math.random()*max)+1;
Math.ceil(Math.random()*max);
Copier après la connexion

Si vous souhaitez générer un nombre aléatoire de 0 à n'importe quelle valeur, la formule est la suivante :

// max - 期望的最大值
parseInt(Math.random()*(max+1),10);
Math.floor(Math.random()*(max+1));
Copier après la connexion

Si vous souhaitez générer des nombres aléatoires de n'importe quelle valeur à n'importe quelle valeur, la formule est la suivante :

// max - 期望的最大值
// min - 期望的最小值 
parseInt(Math.random()*(max-min+1)+min,10);
Math.floor(Math.random()*(max-min+1)+min);
Copier après la connexion

Jetons un coup d'œil à d'autres façons de générer des nombres aléatoires à l'aide de javascript

1. Utilisez la méthode intégrée de génération de nombres aléatoires : (je viens de le mentionner, voici une brève description)

Math.random(); //该方法产生一个0到1之间的浮点数。
Math.floor(Math.random()*10+1); //1-10
Math.floor(Math.random()*24);//0-23 
Copier après la connexion

2. En fonction du temps, des nombres aléatoires peuvent également être générés :

Copier le code Le code est le suivant :
var now=new Date(
); var number = now.getSeconds(); //Cela générera un entier de 0 à 59 en fonction de l'heure actuelle.

var now=nouvelle Date();
var number = now.getSeconds()C; //Cela générera un entier de 0 à 42 en fonction de l'heure actuelle.

3. Un très excellent programme générateur de nombres aléatoires qui peut être utilisé dans de nombreux domaines.

<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>
Copier après la connexion

Regardons deux exemples plus spécifiques,

La première méthode est implémentée en réécrivant la méthode Math.random, et la deuxième méthode est modifiée à partir d'une implémentation C, les deux pouvant atteindre des objectifs de programmation.

Exemple 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>
Copier après la connexion

Exemple 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>
Copier après la connexion

D'accord, grâce à ces exemples, tout le monde devrait avoir une compréhension correspondante de la génération de nombres aléatoires avec javascript. J'espère que cet article pourra vous inspirer.

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal