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

Введение Мы, разработчики программного обеспечения, часто попадаем в ситуации, когда нам нужно внести в код некоторую долю случайности. В этой статье мы рассмотрим, как генерировать случайные числа в JavaScript. Мы также коснемся нескольких встроенных методов работы со случайными числами. В конце мы применим эти знания, написав функцию для моделирования шестигранной матрицы. Генерация случайных чисел в JavaScript Math.random () в 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 

Заключение

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

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

comments powered by Disqus

Содержание