В JS для генерации случайных чисел можно использовать объект Math (арифметический).
Методы объекта Math, которые нужно знать
| Метод | Описание |
|---|---|
| ceil(x) | Округляет число вверх, т. е. округление вверх. | floor(x) | Округляет x вниз, т. е. округление вниз. |
| round(x) | Округляет до ближайшего целого. |
| random() | Возвращает случайное число от 0 до 1, включая 0, но не включая 1. |
Несколько примеров пояснений:
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 的几率少一半。
Поскольку результат равен 0 для 0~0.4, 1 для 0.5–1.4, 9 для 8.5–9.4 и 10 для 9.5–9.9. Поэтому интервалы распределения в начале и конце составляют лишь половину от остальных чисел.
Генерация случайных целых чисел в [n,m]
Назначение функции: Сгенерировать[n,m]случайное целое число.
Полезно при генерации капч или случайном выборе варианта в 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;
}
}
Анализ процесса:
Math.random() генерирует число в [0,1), поэтому Math.random()*5 генерирует число в [0,5).
Обычно мы ожидаем целое число, поэтому нам нужно обработать результат.
parseInt(), Math.floor(), Math.ceil() и Math.round() все могут давать целые числа.
parseInt() и Math.floor() оба округляют вниз.
Таким образом, Math.random()*5 генерирует случайные целые числа в [0,4].
Итак, чтобы сгенерировать случайное число в [1,max], формула выглядит следующим образом:
// max - 期望的最大值 parseInt(Math.random()*max,10)+1; Math.floor(Math.random()*max)+1; Math.ceil(Math.random()*max);
Итак, чтобы сгенерировать случайное число от [0,max] до любого числа, формула выглядит следующим образом:
// max - 期望的最大值 parseInt(Math.random()*(max+1),10); Math.floor(Math.random()*(max+1));
Итак, если вы хотите сгенерировать случайное число в [min,max], формула выглядит следующим образом:
// max - 期望的最大值 // min - 期望的最小值 parseInt(Math.random()*(max-min+1)+min,10); Math.floor(Math.random()*(max-min+1)+min);
Пример
const min = parseInt(prompt(Введите минимальное значение:));
const max = parseInt(prompt(Введите максимальное значение:));
// Сгенерируйте случайное число
const a = Math.floor(Math.random() * (max - min + 1)) + min;
// Отобразить случайное число
document.write(`${min}до ${max}случайное число: ${a}`);
Попробуйте »
Онлайн-генератор случайных чисел:https://c.example.com/front-end/6680/
Оригинальная ссылка: http://www.cnblogs.com/starof/p/4988516.html