python维护两个不同的随机实例

2024-01-23

我正在尝试进行一些分析,出于“原因”,我希望程序中的每个对象都有自己的种子,但没有全局种子。我能完成这样的事情吗?

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(使用前将#替换为@)

python维护两个不同的随机实例 的相关文章

随机推荐