Вступление
Мы, разработчики программного обеспечения, часто попадаем в ситуации, когда нам нужно внести в код некоторую долю случайности.
В этой статье мы рассмотрим, как генерировать случайные числа в 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
Давайте сгенерируем случайное число от min
до max
, не включая max
:
function randomNumber(min, max){
const r = Math.random()*(max-min) + min
return Math.floor(r)
}
В качестве альтернативы мы могли бы вместо этого max
в Math.ceil()
Мы умножаем на (max-min)
чтобы преобразовать диапазон [0,1) в [0,
max-min
). Далее, чтобы получить случайное число в нужном диапазоне,
мы добавляем min
. Наконец, мы округляем это до целого числа с помощью
Math.floor()
.
Давайте вызовем этот метод несколько раз и посмотрим на результат:
for (var i = 0; i < 10; i++) {
console.log(randomNumber(0, 10))
}
Это выведет что-то похожее на:
8
3
3
0
1
1
8
2
8
8
Заключение
Генерация псевдослучайных чисел в программе может использоваться для имитации непредсказуемости врага в игре или для рандомизации лесов в блочной игре, которую мы все знаем и любим. Его также можно использовать для имитации случайных входных данных при тестировании другой написанной вами программы.
В любом случае создание случайного числа является важным инструментом в наборе инструментов любого инженера, и его следует максимально расширить с помощью различных методов и алгоритмов генерации. Эта статья была лишь первым шагом в изучении генерации случайных чисел.