2017-09-01 41 views
1

我用Python編寫了一個帶有Fortran擴展(用f2py編譯)的Monte Carlo(MC)代碼。由於它是一個隨機集成,該算法在很大程度上依賴於隨機數,即我使用~ 10^8 - 10^9隨機數進行典型運行。到目前爲止,我並不介意隨機數字的「質量」 - 然而,這是我想要查看的。numpy.random和Monte Carlo

我的問題是:Mersenne-Twister使用的是numpy足夠還是有更好的隨機數生成器在那裏應該(可以)使用? (更好的運行時間以及生成序列的質量)

任何建議/經驗絕對值得歡迎,謝謝!

+1

我建議你檢查MC的現有實現,如[PyMC](https://pymc-devs.github.io/pymc/README.html)或[emcee](http://dan.iel .fm/emcee/current /)並查看它們使用的RNG實現。如果numpy的MT對他們來說足夠好,那麼假設它對你的應用程序來說足夠好似乎是合理的,對吧? – kazemakase

+1

MT應該足夠用於MC,這是根據其wiki頁面 –

回答

2

我不認爲任何人都可以告訴你,如果這個算法足夠了,而不知道如何使用隨機數。

我會做的是用別的東西替換numpy隨機數,當然還有其他模塊已經可用,提供不同的算法。 如果你的仿真結果不受隨機數發生器選擇的影響,它已經是一個好兆頭。

相關問題