Вот очень простой вопрос, который я не могу решить на мой взгляд:
В JS, если я сделаю:
Math.random() я получу случайные числа от 0 до 1 (включая 0, не включая 1)
Итак, если я сделаю Math.ceil(Math.random() * 100), я получу случайные числа от 0 до 100. Я прав?
Я получу 0, если Math.random() был ровно 0, что возможно, как я прочитал в документации.
Однако я везде читал, что, выполняя это «Math.ceil(Math.random() * 100)», я получу числа от 1 до 100.
Пожалуйста, может кто-нибудь прояснить эту ситуацию?
Спасибо!
Math.random() -> [0; 1) Math.ceil(Math.random()) -> [0; 100]
0.9900000000000001 * 100 = 99.00000000000001, а потолок 99.00000000000001 равен 100, поэтому все, что выше 0.99, приведет к 100если вы, например, попытаетесь выполнить значения примитивов Math.ceil(0.1) или Math.ceil(0.2), вы всегда получите 1 в результате вызова .ceil. Поэтому вы всегда получите 100% или 1 (это одно и то же)
@LucasDavidFerrero OP умножается на 100 перед округлением



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Math.random() выдаст вам случайное число от 0 (включительно) до 1 (исключительно), но вероятность того, что это именно 0, невероятно мала.
Math.ceil() округляется. Учитывая, что шансы, что вы получите ровно 0, астрономически малы, вы, скорее всего, получите что-то выше 0 от Math.random(), поэтому почти (но не полностью) невозможно получить 0 от Math.ceil(Math.random()*100).
Так что Math.ceil(Math.random()*100)) даст вам крошечный шанс получить 0, но обычно от 1 до 100 (включительно).
Обычно вы хотите сделать Math.floor(), что округляется в меньшую сторону. У него нет этого пограничного случая, потому что Math.random() никогда не дает вам 1, поэтому никогда не бывает небольшого шанса, что Math.floor(Math.random()*100)) даст вам 100. Это всегда равномерно распределено от 0 до 99 включительно.
Извините, я по ошибке проголосовал за вас и не увидел этого, пока не прошло несколько минут, поэтому я не могу отменить это, пока сообщение не будет отредактировано.
Это очень странно, но я получил 2 отрицательных голоса за это. Это просто люди наваливаются? Я подумал, что это был интересный ответ .. wtf
Это интересный ответ. Должно быть, я случайно понизил голос при смене окон.
Отвечает ли это на ваш вопрос? Каковы шансы, что Math.random вернет 0?