Каковы шансы получить 100 с помощью mt_rand (1100)?

0

Мне интересно, каковы шансы получить 100, используя mt_rand (1,100)? Есть ли шансы 1-100? означает ли это, что я получу по крайней мере 100 раз, если я "рулон" 100 раз?

Мне это интересно некоторое время, но я не могу найти решение. Причина, почему я удивляюсь, потому что я пытаюсь рассчитать, сколько раз мне нужно катиться, чтобы получить 100 гарантированных.

<?php
$roll = mt_rand(1,100);
echo $roll;
?>

С уважением Деннис

  • 0
    возможный дубликат ставки PHP на шанс события
  • 0
    Это не то, что я прошу = /
Показать ещё 2 комментария
Теги:
math

4 ответа

1
Лучший ответ

Есть ли шансы 1-100? означает ли это, что я получу по крайней мере 100 раз, если я "рулон" 100 раз?

Нет, это не то, как работают генераторы случайных чисел. Примите крайний пример:

mt_rand(1, 2)

Можно было бы предположить, что в течение достаточно длительного периода времени число 1s и число 2s будут одинаковыми. Тем не менее, вполне возможно получить последовательность из 10 последовательных 1s. Просто потому, что его случайный характер не означает, что должно появиться определенное число, если бы это было так, это не было бы случайным.

Я пытаюсь рассчитать, сколько раз мне нужно бросить, чтобы получить 100 гарантированных.

Математически нет числа, в котором 100 гарантировано будет в последовательности. Если каждый ролик является независимым, вероятность 99/100 равна 100.

Для двух рулонов это (99/100)^2 или 98%. Для 100 рулонов около 37% вероятность того, что вы не будете катить один 100 в этом наборе. Фактически, вам нужно катить в наборах 230, чтобы иметь менее 1% шанс иметь 100 штук в наборе.

  • 0
    Я действительно думал, что в течение длительного периода времени результат будет почти равен вашему примеру. Спасибо за информацию!
0

получение 1 из 100 рулонов - это просто статистический способ объяснить это. хотя есть 1% (означает 1 из 100), это не значит, что вы действительно получите один из 100 рулонов. это вопрос шансов.

  • 0
    Да, я начинаю понимать, что хе-хе. Спасибо за ответ.
  • 0
    пожалуйста upvote. 0 :)
0

mt_rand использует Mersenne Twister для генерации псевдослучайных чисел, которые, как говорят, равномерно распределены. Поэтому, если вы задаете минимальные и максимальные значения, это должно быть (скорее всего) равномерно распределенным.

Итак: вы можете говорить только о возможности получения числа в заданном диапазоне, а также о ожидаемом количестве попыток, пока не получите определенное число или все числа в диапазоне.

Это означает: никаких гарантий для определенного номера номера не получить определенный номер хотя бы один раз.

  • 0
    Понимаю. но в теории (mt_rand (0, 1) === 0) 50% шанс?
  • 0
    Да, так и должно быть.
Показать ещё 4 комментария
0

Вероятность получения 100 равна 1/100, вызывая эту функцию, однако нет гарантии получения 100, когда вы вызываете ее в течение 100 раз. Вам нужно заняться гораздо большим пространством. Например: если вы вызываете эту функцию на 100 000 000 раз, есть хорошие шансы, что 100 будут найдены в 100 000 раз.

На это можно ответить лучше, если вы сообщите нам о своем случае использования более подробно.

  • 0
    На самом деле мне просто интересно, есть ли гарантия, скажем, если вы бросаете 2304 раза, вы должны получить как минимум 100 раз, потому что так работает mt_rand, но, как оказалось, это не так
  • 0
    Нет гарантии, что это произойдет, так работают вероятность и mt_rand. Для вашего случая 2304 недостаточно велико. Реальной реализации генератора случайных чисел не существует, мы можем только приблизиться к реальной случайности.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню