我正在尝试进行一些分析,出于“原因”,我希望程序中的每个对象都有自己的种子,但没有全局种子。我可以完成这样的事情吗?
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
等等…显然是一个超级设计的例子-这些单独的种子将被埋在对象中并与特定的事物相对应。但是第一步是要使类似的东西起作用。
我如何让python维护多个种子随机数?
您需要使用一个random.Random类对象。
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
该文档明确指出了您的问题:
该模块提供的功能实际上是random.Random该类的隐藏实例的绑定方法。您可以实例化自己的实例,Random以获取不共享状态的生成器。
Random