Maison > interface Web > js tutoriel > Analyse du processus de génération de nombres aléatoires avec les compétences js_javascript

Analyse du processus de génération de nombres aléatoires avec les compétences js_javascript

WBOY
Libérer: 2016-05-16 15:30:31
original
1528 Les gens l'ont consulté

1. Connaissances préliminaires

Math.ceil(); //向上取整。

Math.floor(); //向下取整。

Math.round(); //四舍五入。

Math.random(); //0.0 ~ 1.0 之间的一个伪随机数。【包含0不包含1】 //比如0.8647578968666494

Math.ceil(Math.random()*10);   // 获取从1到10的随机整数 ,取0的概率极小。

Math.round(Math.random());  //可均衡获取0到1的随机整数。

Math.floor(Math.random()*10); //可均衡获取0到9的随机整数。

Math.round(Math.random()*10); //基本均衡获取0到10的随机整数,其中获取最小值0和最大值10的几率少一半。
Copier après la connexion

Parce que le résultat est 0 ~ 0,4, 0,5 à 1,4 est 1... 8,5 à 9,4 est 9 et 9,5 à 9,9 est 10. Par conséquent, l’intervalle de distribution de la tête et de la queue n’est que la moitié de celui des autres nombres.

2. Générer des entiers aléatoires de [n, m]
Fonction : Générer des entiers aléatoires de [n, m].

C'est utile lorsque js génère un code de vérification ou sélectionne une option au hasard. .

//生成从minNum到maxNum的随机数
function randomNum(minNum,maxNum){ 
 switch(arguments.length){ 
 case 1: 
  return parseInt(Math.random()*minNum+1,10); 
 break; 
 case 2: 
  return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10); 
 break; 
  default: 
  return 0; 
  break; 
 } 
} 
Copier après la connexion

Analyse des processus :
Math.random() génère le nombre [0,1), donc Math.random()*5 génère le nombre {0,5).

Habituellement, un nombre entier est attendu, le résultat doit donc être traité.

parseInt(), Math.floor(), Math.ceil() et Math.round() peuvent tous obtenir des entiers.

Les résultats de parseInt() et Math.floor() sont arrondis à l'inférieur.

Donc Math.random()*5 génère des entiers aléatoires dans [0,4].

Ainsi le nombre aléatoire de [1,max] est généré, 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

Générez donc un nombre aléatoire de [0,max] à n'importe quel nombre, la formule est la suivante :

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

J'espère donc générer un nombre aléatoire de [min, max], 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

Ce qui précède est une analyse complète des nombres aléatoires générés par js. Elle est très détaillée. J'espère que cela pourra aider tout le monde.

É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