Я использую Excel и VBA для имитации большого количества бросков костей.

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

Я использую INT = RND() * 6 +.5 для каждого кубика.
Есть ли способ сделать это на пару порядков более случайным?
Я использую Randomize перед рукой, чтобы не начинать каждый раз одинаково.

1 ответ1

1

VBA, вероятно, реализует псевдослучайную функцию. Поскольку это функция, она повторяется, но генерирует набор значений со случайным распределением.

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

Вы также можете использовать веб-сервис и скачать большое количество случайных чисел. random.irb.hr и random.org - это два таких сервиса.

На сайте random.irb.hr есть несколько библиотек, которые позволяют программно получить доступ к сервису после создания учетной записи.

Вы также можете купить фактический генератор, который они используют, и использовать программное обеспечение, которое они предоставляют вместе с ним.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .