Рубрики
Без рубрики

Понимание Math.random () в JavaScript!

Невероятно, сколько раз вам придется использовать Math.random () (из всех методов математики Tha … Теги с JavaScript.

Невероятно, сколько раз вам придется использовать Math.random () (из всех методов математики, которые отправляют вне коробки с JavaScript).

Если вы творческий кодер, вам понадобится его, чтобы сделать созданное искусство (даже если многие из инструментов творческого кодирования корабля их собственного аромата Trusty Math.random ()). В результате, это, вероятно, отличная идея разума о том, как работает Math.random ().

На его самом основании Math.random () предназначен для того, чтобы сделать только одно: генерировать число от 0 до 1. Мне нравится думать об этом как о белой машине шума, создавая белые и черные пиксели для заполнения целого экрана. Эта аналогия мощна, когда вы считаете, что машины белого шума попадают в создание мозаики и даже полученные процедурные облака, среди прочего.

Другими словами, Math.random () обманчиво просты:

0≤ n <1
//What Math.random generates

Math.random () генерирует число от нуля и один, но никогда (или редко когда-либо) генерирует сам о себе.

Расширение math.random ()

Если мы думаем о 0≤n <1 В качестве алгоритма для процессуального поколения случайных плавающих цифр мы можем затем генерировать числа, не ограничиваемые 0 и один. Нам нужно только уменьшить скелет нашего желаемого диапазона до базового формата.

Скажем, вы хотите создать число от 5 до 15. Это умственная последовательность, которую вы будете следовать:

  • Мне нужно число от 5 до 15.
  • Это можно представить математически, как 5≤n <16 (вы можете догадаться, почему мы пишем 16, а не 15?)
  • Но Math.random () может думать только в 1S и 0s. Так как договориться о договоренности?
  • Сначала вычитайте пять из каждой части этой математической модели вычисления.
  • Это дает нам 5-5≤n-5 <16-5
  • … что это 0≤n-5 <11
  • Хорошо. Таким образом, у нас есть ноль на одном конце. Но нам нужен 1, а не 11, на другом конце!
  • О, я знаю! Давайте разделим все на 11!
  • 0/11≤ (N-5)/11 <11/11
  • Это 0≤ (N-5)/11 <1
  • Ура!
  • Но мы не сделали:(
  • Вы видите, (N-5)/11 это р. То есть случайное число Math.random () будет генерировать. То, что мы хотим получить это фактор, мы умножим R, чтобы получить цифры в диапазоне, который мы хотим (в этом случае 5-15). Для этого мы должны найти n .
  • r = ( N-5)/11
  • Умножьте обе стороны на 11
  • N-5 * 11
  • Добавить пять в обе стороны
  • n = (r * 11) + 5 Давайте возьмем это для спина, будем ли мы? Давайте напишем функцию под названием Fivetofifteen Отказ

И это работает!

Но что, если вы хотите изменить число из пяти до пятнадцати, скажем, 8 и 19? Будете ли вы сделать это 18 шаговых рассуждений, которые мы сделали ранее?

Милосердно нет. Вместо того, чтобы думать в чистых числах (5 и 15), мы можем думать с точки зрения мин и Макс Отказ

0 is min, 1 is max.

Таким образом, мы можем начать с этой основной идеи вместо этого: Мин ≤n Если мы снова пройдемся через 18 шагов, у нас есть что-то подобное на шаге 9:

  • min-min≤n-min , что дает нам 0≤n-min
  • Разделите через (Max-min), и мы получаем:
  • 0/(max-min) ≤n-min/(max-min) <(max-min)/(max-min)
  • 0≤n-min/(max-min) <1

Ага.

Затем мы можем запустить r = (n-min)/max-min

  • Умножьте обе стороны по (Макс-мин) и мы получаем R * -min.
  • Добавить мин r * (max-min) +

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

function anyRandomNumber(min, max){
    let r = Math.random();
    r*=(max-min);
    r+=min;
    console.log(Math.floor(r))
}

anyRandomNumber(69,87)

Благодаря математике Scrimba для разработчиков Frontend за то, чтобы помочь мне понять это, и я надеюсь, что это полезная умственная модель для вас! Это было изначально опубликовано в моем блоге

Оригинал: “https://dev.to/vunderkind/understanding-math-random-in-javascript-3f4”