Я играю с PRNG (например, Mersenne Twister и rand()
функция stdlib), и я хотел бы получить хороший тест, который поможет мне определить качество случайных данных, создаваемых PRNG. Я вычислил значение Pi, используя случайные числа, сгенерированные PRNG, и я нахожу rand()
, а Mersenne Twister очень близок к тому, чтобы предложить различие (нужно ли проверять после десяти десятичных точек?).Тестирование качества PRNG
Я не очень-то разбираюсь в симуляциях Монте-Карло; сообщите мне о каком-то алгоритме/приложении (возможно, что-то простое, но которое может дать хорошие выводы), которые помогут мне отличить их по качеству.
EDIT 1: я не замечал раньше, но есть аналогичные нити: How to test random numbers?
EDIT 2: Я не в состоянии интерпретировать результаты NIST, как указано в один из комментариев. Я получил эту идею визуально интерпретировать шаблон (если есть) от random.org и следую за этим из-за его простоты. Я был бы очень рад, если кто-то может прокомментировать процесс моего тестирования:
- Сформировать N Randoms из [0,1] с помощью RAND() и MT1997
- если
(round(genrand_real1()/rand_0_1()))
затем красный пиксель, еще черный
Как я понимаю, это не очень точное решение, но если это дает разумную оценку, то я мог бы жить с этим в настоящий момент.
Я не уверен в получении каких-либо ** случайных данных ** из ** генераторов псевдослучайных чисел ** - но я думаю, что вы могли бы реализовать с ними http://en.wikipedia.org/wiki/Fair_coin#Fair_results_from_a_biased_coin .. – Aprillion
Вы говорите, что, поскольку значения, генерируемые PRNG, предсказуемы? спасибо – Sayan
да, это различие - это было всего лишь напоминанием о том, что PRNG достаточно хорош для вашего приложения, и вам не нужен TRNG, как [random.org] (http://random.org)) – Aprillion