@ldmitriy

Почему Math.random() не возвращает ноль?

Ведь в спецификации написано он нуля включительно и единицы не включительно
Например, почему результатом(1-6) не может быть ноль, это же противоречит самой спецификации:
console.log(Math.ceil(Math.random() * 6));
  • Вопрос задан
  • 175 просмотров
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
Кто сказал что не может?

В теории очень даже может, но ждать этого события вы будете оооочень долго.

Поэтому функцию для бросания игральной кости (d6) правильнее записать так:

function d6() {
    return Math.floor(Math.random() * 6) + 1);
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
15432
@15432
Системный программист ^_^
Пусть random() возвращает вещественное значение от 0 до 1. Согласно равномерному распределению, вероятность попадания результата в диапазон [0, 0.5] будет 1/2 (50%, половина от всего диапазона). Точно так же продолжаем - вероятность значения из диапазона [0, 0.25] уже 1/4 (25% шанс). Продолжая дальше, получим, что вероятность выпадения значения 0 стремится к нулю! Если для остальных значений 1..6 в вашем коде выпадение определенного значения эквивалентно попаданию результата в конкретный диапазон значений, то значению 0 соответствует диапазон нулевой длины, из-за чего вероятность его выполнения также стремится к нулю
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы