Насколько плох ранд от stdlib.h? - PullRequest
2 голосов
/ 28 июля 2011

Я делаю симуляцию Монте-Карло в C ++ и использую Boost для случайных чисел. Я тоже немного использовал GSL. Но оказалось, что генерация случайных чисел - одна из моих самых больших неэффективностей во время выполнения, поэтому я только начал использовать старый добрый rand() из cstdlib.

Насколько сильно я рискую иметь плохие свойства случайных чисел в моей симуляции? Я использую около 10 ^ 6 или 10 ^ 7 выборок случайных чисел.

1 Ответ

0 голосов
/ 28 июля 2011

Существует две проблемы: (1) поскольку RAND_MAX гарантированно будет иметь значение не менее 32767, возможно, будет не так много возможных значений (не обязательно плохих для некоторых приложений), и (2) плохие реализации.

Если вам нужен так называемый безопасный генератор случайных чисел, вам нужно искать в другом месте. Но для многих приложений достаточно rand().

Сообщение в блоге, в котором рассматриваются ваши проблемы: http://eternallyconfuzzled.com/arts/jsw_art_rand.aspx.

...