Per 如何生成可重复的随机数序列?可以设置随机模块的状态,以便您可以期望后续调用randint返回相同的数字.
我用这种方法看到的一个限制是状态设置在模块级别(本质上是一个全局变量),所以似乎不可能创建几个可重复的随机数流/迭代器(但是流的调用可以任意交错) )与当前的机制.是否有任何变通办法/替代库可以实现这一目标?
random.Random() 是你在找什么.
http://hg.python.org/cpython/file/2.7/Lib/random.py#l72
所有random.*模块级函数都只是Random()生活在的共享实例的代理random._inst.
http://hg.python.org/cpython/file/2.7/Lib/random.py#l879
根据您的情况,您所做的只是实例化N个random.Random()实例; 它们将具有独立的内部RNG状态,并且可以在不相互影响的情况下播种/消费.
实际上,我认为最好的做法Random()是为非平凡的应用程序创建自己的实例,特别是如果存在状态相关的错误等,它可以很容易地重复.特别是在测试套件中,这可能是非常宝贵的.
| 归档时间: |
|
| 查看次数: |
808 次 |
| 最近记录: |