我正在尝试进行一些分析,出于“原因”,我希望程序中的每个对象都有自己的种子,但没有全局种子。我能完成这样的事情吗?
a = random.seed(seed1)
b = random.seed(seed1)
for a in range(5) :
print a.random(), b.random()
预期输出是
0.23 0.23
0.45 0.45
0.56 0.56
0.34 0.34
ETC...
显然是一个超级人为的例子——这些单独的种子将被埋在物体中并对应于特定的事物。但第一步是让这样的事情发挥作用。
如何让 python 维护多个种子随机数?
你需要使用一个random.Random
类对象。
from random import Random
a = Random()
b = Random()
a.seed(0)
b.seed(0)
for _ in range(5):
print(a.randrange(10), b.randrange(10))
# Output:
# 6 6
# 6 6
# 0 0
# 4 4
# 8 8
The 文档 https://docs.python.org/2/library/random.html明确说明您的问题:
该模块提供的函数实际上是一个的绑定方法
的隐藏实例random.Random
班级。你可以实例化你的
自己的实例Random
获得不共享状态的生成器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)