我应该在python中随机包中使用randint函数吗?

问题描述:

我想检查randint函数是否已经播种。我应该在python中随机包中使用randint函数吗?

我应该手动播种吗?如果是的话,我该怎么做?

+0

https://github.com/python/cpython/blob/master/Lib/random.py#L748 –

+1

尝试调用'randint'而不手动seedig它。如果它有效,那么你知道它已经播种了。 – Goyo

+0

如果您需要伪随机数字对于每次运行都是可重复的,您应该使用常数来播种它。否则,模块将使用当前时间作为种子值。 –

除非您有非常明确的要求,否则没有必要明确地种子。内部Random()实例会在您第一次导入模块时自动播种。

module documentation

由该模块提供的功能实际上是结合的random.Random类的隐藏的实例的方法。

Random.__init__()

class Random(_random.Random): 
    # ... 
    def __init__(self, x=None): 
     # ... 
     self.seed(x) 

# ... 

_inst = Random() 

所以创建模块,当实例调用self.seed(None)None装置(其可以是time.time())“最好的种子的可用的源”,看到random.seed()

如果省略None,当前系统时间被使用(连同进程的PID) 。如果操作系统提供随机源,则使用它们而不是系统时间(有关可用性的详细信息,请参见os.urandom()函数)。