Синтаксис JavaScript Справочник JavaScript JSON Коды клавиш События Строгий режим

Math.random()

Поддержка браузерами

Описание

Метод Math.random() возвращает псевдослучайное число между 0 и 1.

Псевдослучайное число создаётся в диапазоне от 0 (включительно) до 1 (исключительно), то есть возвращаемое число может быть нулём, но всегда будет меньше единицы.

Для округления числа с плавающей точкой до целого можно воспользоваться к примеру методом Math.floor().

Синтаксис

Math.random()

Возвращаемое значение

Метод 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>
Попробовать »
Копирование материалов с данного сайта возможно только с разрешения администрации сайта
и при указании прямой активной ссылки на источник.
2011 – 2024 © puzzleweb.ru | razumnikum.ru

Реклама на сайте | puzinfo@puzzleweb.ru | ruen