Ваш генератор псевдослучайных чисел (PRNG) когда-либо был недостаточно случайным?

Вы когда-нибудь писали симуляции или рандомизированные алгоритмы, где вы сталкивались с проблемами из-за качества (псевдо)-случайных чисел, которые вы использовали?

Что происходило?

Как вы обнаружили/осознали, что проблема в вашем prng?

Было ли достаточно переключения PRNG, чтобы решить проблему, или вам пришлось переключиться на источник истинной случайности?

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


person Jesse Cohen    schedule 23.02.2011    source источник
comment
уххх, как мне это сделать? faq говорит, что должен быть флажок, но я не могу его найти... :-/   -  person Jesse Cohen    schedule 24.02.2011


Ответы (2)


  1. Устаревший генератор случайных чисел RANDU был печально известен в семидесятых годах тем, что выдавал "плохие" случайные числа. Мой научный руководитель упомянул, что это повлияло на его докторскую степень, и ему пришлось повторно запускать симуляции. Поиск в Google по запросу линейный конгруэнтный генератор RANDU. приводит другие примеры.
  2. Когда я запускаю симуляции на нескольких машинах, у меня иногда возникает соблазн генерировать «случайные начальные числа», а не просто использовать правильный параллельный генератор случайных чисел. Например, сгенерируйте начальное значение, используя текущее время в секундах. Это вызвало у меня достаточно проблем, поэтому я избегаю этого любой ценой.

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

person csgillespie    schedule 23.02.2011
comment
Демонстрация несостоятельности линейно-конгруэнтной генерации для выборки двухмерных пространств должна быть основным упражнением любого класса, который тратит время на MC. - person dmckee --- ex-moderator kitten; 23.10.2011

Рекомендуется запускать prng на DieHard. В настоящее время существуют очень хорошие и быстрые ГПСЧ (см. работу Марсальи), см. Numerical Recipes выпуск 3 для хорошего введения.

person Alexandre C.    schedule 23.02.2011