JS peut utiliser l'objet Math (arithmétique) pour générer des nombres aléatoires.

Méthodes de l'objet Math à connaître

Méthode Description
ceil(x) Arrondit un nombre à l'entier supérieur, c'est-à-dire arrondit vers le haut.
floor(x) Arrondit x à l'entier inférieur, c'est-à-dire arrondit vers le bas.
round(x) Arrondit à l'entier le plus proche.
random() Retourne un nombre aléatoire entre 0 et 1, incluant 0 mais pas 1.

Quelques explications d'exemples :

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 的几率少一半。

Parce que le résultat est 0 pour 0~0.4, 1 pour 0.5 à 1.4, 9 pour 8.5 à 9.4, et 10 pour 9.5 à 9.9. Ainsi, les intervalles de distribution des extrémités ne représentent que la moitié de ceux des autres nombres.


Générer des nombres entiers aléatoires dans [n,m]

But de la fonction: Générer[n,m]un entier aléatoire.

Utile lors de la génération de captchas ou de la sélection aléatoire d'une option en JS.

//生成从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; 
    } 
} 

Analyse du processus :

Math.random() génère un nombre dans [0,1), donc Math.random()*5 génère un nombre dans [0,5).

Habituellement, nous attendons un entier, donc nous devons traiter le résultat.

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

parseInt() et Math.floor() arrondissent tous les deux vers le bas.

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

Donc, pour générer un nombre aléatoire dans [1,max], la formule est la suivante :

// max - 期望的最大值
parseInt(Math.random()*max,10)+1;
Math.floor(Math.random()*max)+1;
Math.ceil(Math.random()*max);

Donc, pour générer un nombre aléatoire de [0,max] à un nombre quelconque, la formule est la suivante :

// max - 期望的最大值
parseInt(Math.random()*(max+1),10);
Math.floor(Math.random()*(max+1));

Donc, si vous voulez générer un nombre aléatoire dans [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);

Exemple

// Saisie utilisateur
const min = parseInt(prompt(Entrez la valeur minimale :));
const max = parseInt(prompt(Entrez la valeur maximale :));

// Générer un nombre aléatoire
const a = Math.floor(Math.random() * (max - min + 1)) + min;

// Afficher le nombre aléatoire
document.write(`${min}à ${max}nombre aléatoire : ${a}`);

Essayez-le »

Un générateur de nombres aléatoires en ligne :https://c.example.com/front-end/6680/

Lien d'origine : http://www.cnblogs.com/starof/p/4988516.html