Мне нужна помощь в отношении алгоритма случайности. Итак, проблема в том.
В течение 8 часов должно произойти 50 событий. События могут происходить в случайное время.
Теперь это означает, что в каждую секунду есть вероятность того, что событие произойдет: 50 / (8 * 60 * 60) = .001736.
Как я могу сделать это с алгоритмом случайной генерации?
Я могу получить случайное число
int r = rand();
double chance = r/RAND_MAX;
if(chance < 0.001736)
then event happens
else
no event
Но в большинстве случаев rand () возвращает 0 и 0 <0,001736, и я получаю больше событий, чем требуется. </p>
Есть предложения?
прости, я забыл упомянуть
Я рассчитал шанс как
двойной шанс = (static_cast) (r) / (static_cast) (RAND_MAX);
Удаляется double из static_cast
двойной шанс = (двойной) r / (двойной) (RAND_MAX);