js puede usar el objeto Math (aritmética) para generar números aleatorios.

Métodos del objeto Math que debe conocer

Método Descripción
ceil(x) Redondea un número hacia arriba, es decir, al entero superior.
floor(x) Redondea x hacia abajo, es decir, al entero inferior.
round(x) Redondea al entero más cercano.
random() Devuelve un número aleatorio entre 0 y 1, incluye 0 pero no incluye 1.

Algunas explicaciones con ejemplos:

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

Porque el resultado es 0 en 0~0.4, 1 de 0.5 a 1.4, 9 de 8.5 a 9.4 y 10 de 9.5 a 9.9. Por lo tanto, el intervalo de distribución en los extremos es solo la mitad que el de los demás números.


Generar un entero aleatorio en [n,m]

Función: generar[n,m]un entero aleatorio.

Es muy útil en js para generar códigos de verificación o seleccionar aleatoriamente una opción.

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

Análisis del proceso:

Math.random() genera un número en [0,1), por lo tanto Math.random()*5 genera un número en {0,5).

Normalmente se espera obtener un entero, por lo que hay que procesar el resultado obtenido.

parseInt(), Math.floor(), Math.ceil() y Math.round() pueden obtener un entero.

parseInt() y Math.floor() redondean hacia abajo.

Por lo tanto, Math.random()*5 genera enteros aleatorios en [0,4].

Así que para generar un número aleatorio en [1,max], la fórmula es la siguiente:

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

Así que para generar un número aleatorio desde [0,max] hasta cualquier número, la fórmula es la siguiente:

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

Así que si desea generar un número aleatorio en [min,max], la fórmula es la siguiente:

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

Ejemplo

// Entrada del usuario
const min = parseInt(prompt("Ingrese el valor mínimo: "));
const max = parseInt(prompt("Ingrese el valor máximo: "));

// Generar número aleatorio
const a = Math.floor(Math.random() * (max - min + 1)) + min;

// Mostrar número aleatorio
document.write(`${min}hasta ${max}el número aleatorio es: ${a}`);

Pruébalo »

Un generador de números aleatorios en línea:https://c.example.com/front-end/6680/

Enlace al artículo original: http://www.cnblogs.com/starof/p/4988516.html