Похоже, вы хотите использовать набор неоднородных пуассоновских процессов , что является причудливым способом сказать, что скорость меняется со временем. Количество времени между появлениями Пуассона имеет экспоненциальное распределение с той же скоростью, что и Пуассона. Поскольку вы моделируете это с дискретными временными шагами в одну секунду, вы можете получить очень хорошее приближение к экспоненте, используя геометрическое распределение . Вам просто нужно преобразовать скорость в секунды, а затем в вероятность появления в данную секунду.
Я буду использовать монету 10p в качестве примера, остальные следуют аналогично. Существуют две разные ставки: 50 монет / 6 часов с 10:00 до 16:00 и 30 монет / 18 часов для оставшейся части дня. Поскольку у часа 3600 секунд, они конвертируются в скорости 5/2160 и 1/2160 в секунду соответственно. Это, в свою очередь, можно рассматривать как вероятность получения монеты в секунду. Обратите внимание, что эти вероятности являются приближением, основанным на предположении Пуассона, что вы никогда не получите два или более вхождений в достаточно малом интервале времени. Я подозреваю, что вы можете утверждать, что это разумное предположение на уровне одной секунды, учитывая механизм подачи монет.
Если вы купите это, тогда жизнь станет проще. Когда ваша функция вызывается, сгенерируйте случайное число с плавающей запятой в диапазоне от 0,0 до 1,0. Если это меньше или равно вероятности, связанной с текущим временем, вы получили 10p монеты, в противном случае вы не получили. (Если вместо этого вы предпочитаете целочисленную математику, сгенерируйте int, равномерно распределенный между 1 и 2160, и если он меньше или равен 5 между 10:00 и 16:00 или 1 в течение остальной части дня, вы получаете монету. Просто убедитесь, что не используйте модуль 2160 для получения случайного числа, чтобы не ввести модуль смещения .)
вспенить, промыть и повторить для других типов монет. Вероятности будут разными, но рассчитаны одинаково. Просто убедитесь, что вы используете отдельные / независимые случайные числа для разных типов монет.