Math.random()
Поддержка браузерами
Описание
Метод Math.random() возвращает псевдослучайное число между 0 и 1.
Псевдослучайное число создаётся в диапазоне от 0 (включительно) до 1 (исключительно), то есть возвращаемое число может быть нулём, но всегда будет меньше единицы.
Для округления числа с плавающей точкой до целого можно воспользоваться к примеру методом Math.floor().
Синтаксис
Math.random()
Возвращаемое значение
- Число с плавающей точкой в диапазоне от 0 (включительно) до 1 (исключительно).
Метод Math.random() в основном используют для генерации псевдо-случайного числа в определённом диапазоне. Например, нам надо получить число в диапазоне от 50 до 100 (включительно). Для этого нам придётся написать следующий код:
document.write(Math.floor(Math.random() * 51 + 50));
Рассмотрим подробно как работает наш пример и почему используется именно такая форма записи. Первым делом нам надо указать минимальное получаемое значение из нужного диапазона, в нашем примере это число 50. Теперь нам нужно каким-то образом получить случайное число, которое при сложении с числом 50 не будет превышать в сумме число 100. Как мы знаем из математики, нахождение неизвестного слагаемого делается путём вычитания из суммы известного слагаемого. 100 - 50: получаем разность 50. Теперь для проверки, подходит нам это число или нет, умножим его на возможное минимальное и максимальное число возвращаемое методом Math.random(). Умножаем минимальное 0.004704564176082244 * 50 = 0.2... и максимальное 0.9999999999746223 * 50 = 49.9... И так мы видим, что при умножении разности на максимально возможное случайное число в результате даёт нам целую часть числа на единицу меньше, чем нужно. Чтобы исправить ситуацию, нам нужно всего лишь прибавить одну единицу к 50, т.е. 50 + 1 = 51, теперь если полученное число умножить на максимально возможно число возвращаемое методом у нас будет выходить число 50.9... - это то, что нам надо, после сложения чисел 50.9 + 50, получаем 100.9. Для округления числа до целого используем метод Math.floor(). Таким образом, формула для получения нужного числа выглядит следующим образом: max - min + 1. Перепишем приведённый выше пример:
var max = 100, min = 50; document.write(Math.floor(Math.random() * (max - min + 1) + min));
Эта формула особенно полезна, когда заранее неизвестно в каком диапазоне необходимо получить случайное число.
Пример
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Название документа</title> </head> <body> <p>Псевдослучайное число в диапазоне от 1 до 10.</p> <div id="test"></div> <script> var x; for(var i = 0; i < 10; i++) { x = document.getElementById('test'); x.innerHTML += Math.floor(Math.random() * 10 + 1) + '<br>'; } </script> </body> </html>Попробовать »