Как проверить генератор случайных чисел - PullRequest
28 голосов
/ 25 января 2010

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

Ответы [ 13 ]

1 голос
/ 25 января 2010

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

0 голосов
/ 25 января 2010

Если у вас нет доступа к генератору случайных чисел и вы можете использовать его для генерации чисел по своему желанию, вы не сможете проверить, является ли последовательность чисел случайной.Подумайте об этом: у вас есть генератор случайных чисел.Допустим, это универсальный генератор случайных чисел, генерирующий случайные целые числа в диапазоне [0,9].Учитывая последовательность:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Можете ли вы сказать, если это случайно?Существует конечная вероятность 10 -10 , что наш равномерный генератор случайных чисел сгенерирует эту точную последовательность.Фактически, учитывая любую длину-10 последовательности, мы имеем одинаковую вероятность того, что наш генератор случайных чисел генерирует эту последовательность.Следовательно, по определению вы не можете определить, является ли данная последовательность случайной.

Если у вас есть доступ к самому генератору, и вы можете использовать его для генерации нескольких последовательностей, то имеет смысл «проверитьслучайность».Для этого я бы посмотрел на Diehard тесты .Существуют различные реализации.

0 голосов
/ 25 января 2010

Вы не можете сгенерировать истинную случайность с помощью любого алгоритма, поэтому попытайтесь визуализировать свои результаты и проверить паттерны своими глазами. Ни один генератор случайных чисел (по алгоритму) не будет создавать некоторые шаблоны, которые вы можете судить о них самостоятельно. Вот одна из демонстраций этой идеи: http://www.alife.co.uk/nonrandom/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...