2017-09-01 76 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随机数,当然还有其他模块已经可用,提供不同的算法。 如果你的仿真结果不受随机数发生器选择的影响,它已经是一个好兆头。

相关问题