DevGang
Авторизоваться

JavaScript: как сгенерировать случайное число в диапазоне

Мы, как разработчики программного обеспечения, часто попадаем в ситуации, когда нам нужно добавить в код некоторую долю случайности.

В этой статье мы рассмотрим, как генерировать случайные числа в 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

Вывод

Генерация псевдослучайных чисел в программе может использоваться для имитации непредсказуемости врага в игре или для рандомизации лесов в блочной игре, которую мы все знаем и любим. Его также можно использовать для моделирования случайных входных данных при тестировании другой написанной вами программы.

В любом случае генерация случайного числа является важным инструментом в наборе инструментов любого инженера, и его следует максимально расширить с помощью различных методов и алгоритмов генерации. Эта статья была лишь первым шагом в изучении генерации случайных чисел.

Источник:

#JavaScript
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

Поделитесь своим опытом, расскажите о новом инструменте, библиотеке или фреймворке. Для этого не обязательно становится постоянным автором.

Попробовать

Оплатив хостинг 25$ в подарок вы получите 100$ на счет

Получить