2011-02-23 124 views
4

您是否因爲您使用的(僞)隨機數字的質量而寫過模擬或隨機算法,因爲您遇到麻煩了?您的僞隨機數發生器(PRNG)是否不夠隨機?

發生了什麼事?

您是如何檢測/實現您的prng問題的?

切換PRNGs是否足以解決問題,還是您必須切換到真正的隨機性來源?

我想弄清楚什麼類型的應用程序需要擔心隨機性源的質量以及如何在這成爲問題時意識到這一點。

+0

請讓社區wiki – 2011-02-23 13:20:24

+0

呃,我該怎麼做?常見問題表示應該有一個複選框,但我找不到它......: -/ – 2011-02-24 02:49:50

回答

3
  1. 過期的隨機數發生器RANDU在七十年代因爲產生「壞」隨機數而臭名昭着。我的博士生導師提到它影響了他的博士學位,他必須重新運行模擬。在谷歌搜索RANDU linear congrunetial generator提出了其他例子。
  2. 當我在多臺機器上運行仿真時,有時我會試圖生成「隨機種子」,而不是僅僅使用合適的並行隨機數生成器。例如,使用當前時間以秒爲單位生成種子。這導致我足夠的問題,我不惜一切代價避免這個問題。

這主要是由於我的特殊利益,而不是並行計算等,創造我自己的隨機數發生器的思想永遠不會過我的腦海。在大多數語言中調用經過良好測試的隨機數函數是微不足道的。

+0

顯示線性一致生成對2+維空間採樣的失敗應該是任何在MC上花時間的基本練習。 – dmckee 2011-10-22 20:42:02

1

DieHard運行prng是個好習慣。目前存在非常好的和快速的PRNG(參見Marsaglia的工作),參見數值食譜版本3的一個很好的介紹。