跨系统和版本的python伪随机数的再现性?

Lau*_*ire 15 python random portability

在给定初始参数的情况下,我需要生成受控的伪随机数序列.为此,我使用标准的python随机生成器,由此参数播种.我想确保我将跨系统生成相同的序列(操作系统,但也包括Python版本).

总结:python是否确保其伪随机数生成器在实现版本中的可重复性/可移植性?

Fre*_*Foo 7

不,它没有.random模块的文档中没有这样的承诺.

文档包含的内容是这句话:

在版本2.3中更改:MersenneTwister将Wichmann-Hill替换为默认生成器

因此在Python 2.3之前使用了不同的RNG.

到目前为止,我一直在使用numpy.random.RandomState可重现的伪随机性,尽管它也没有达到你所追求的正式承诺.

如果你想要完全重现,你可能想要random在你的程序中包含一个源代码的副本,或者从中破解"P²RNG"(伪伪RNG)hashlib.