Автор оригинала: Abhilash Kakumanu.
Вступление
Мы, как разработчики программного обеспечения часто спотыкаются на ситуации, когда нам нужно вставить дозу случайности в наш код.
В этой статье мы посмотрим, как генерировать случайные числа в JavaScript. Мы также коснусь нескольких встроенных методов для решения случайных чисел. К концу мы предоставим эти знания хорошему использованию, написав функцию для имитации шестисторонней смерти.
Генерация случайных чисел в JavaScript
Math.random ()
в JavaScript генерирует случайное число с плавающей точкой (десятичное). 0 и
1 (включительно 0, но не 1). Давайте проверим это, позвонив:
console.log(Math.random())
Это выводит номер с плавающей запятой, аналогичный:
0.9261766792243478
Это полезно, если вы имеете дело с процентами, как и любое значение между 0
и 1
, округлые до двух десятичных знаков, можно считать процентилем.
Генерация случайных целых чисел в диапазоне
Мы обычно не имеем дело с числами с плавающей точкой в диапазоне от 0 до 1, хотя. Итак, давайте посмотрим на путь к круглым номерам с плавающей точкой.
Мы можем раунд вниз Номер с плавающей точкой, используя Math.floor ()
Отказ Аналогично, мы можем вокруг Номер через Math.Ceil ()
Функция:
console.log(Math.floor(3.6)) console.log(Math.ceil(3.6))
Это даст нам выход:
3 4
Давайте сгенерим случайное число между мин
и Макс
, не включая Макс
:
function randomNumber(min, max){ const r = Math.random()*(max-min) + min return Math.floor(r) }
В качестве альтернативы, мы могли бы включить Макс
с Math.Ceil ()
функция вместо этого.
Мы умножаемся с (Макс-мин)
преобразовать диапазон [0,1) в [0, Макс-мин
). Далее, чтобы получить случайное число в требуемом диапазоне, мы добавляем мин
Отказ Наконец, мы округливаем это к целому числу, используя Math.floor ()
Отказ
Давайте назовем этот метод несколько раз и соблюдайте результаты:
for (var i = 0; i < 10; i++) { console.log(randomNumber(0, 10)) }
Это выводят что-то подобное:
8 3 3 0 1 1 8 2 8 8
Заключение
Генерация псевдослучайных чисел в программе можно использовать для моделирования непредсказуемости вражеской в игре, или для рандомизации лесов в блок-подобной игре, которую мы все знаем и любим. Он также может быть использован для моделирования случайных входов при тестировании другой программы, которую вы написали.
В любом случае, генерируя случайное число, является важным инструментом в любом инструменте инженера, а также следует максимально расширить методы и алгоритмы различных генераций. Эта статья была только первым шагом обучения случайного поколения случаев.