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

发布于 2021-01-29 15:02:43

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

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维护多个种子随机数?

关注者
0
被浏览
96
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您需要使用一个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以获取不共享状态的生成器。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看