我对random.seed()在Python中的作用有点困惑。例如,为什么下面的试验会(始终如一地)做它们所做的事情?
>>> import random
>>> random.seed(9001)
>>> random.randint(1, 10)
1
>>> random.randint(1, 10)
3
>>> random.randint(1, 10)
6
>>> random.randint(1, 10)
6
>>> random.randint(1, 10)
7
我找不到关于这方面的好的文件。
随机的。python中的seed(a, version)用于初始化伪随机数生成器(PRNG)。
PRNG是一种生成近似于随机数性质的数列的算法。这些随机数可以使用种子值重新生成。因此,如果您提供种子值,PRNG将使用种子从任意的起始状态开始。
参数a是种子值。如果a值为None,则默认使用当前系统时间。
and version是一个整数,指定如何将参数a转换为整数。缺省值为2。
import random
random.seed(9001)
random.randint(1, 10) #this gives output of 1
# 1
如果你想要复制相同的随机数,那么再次提供相同的种子
random.seed(9001)
random.randint(1, 10) # this will give the same output of 1
# 1
如果你不提供种子,那么它会生成不同的数字,而不是之前的1
random.randint(1, 10) # this gives 7 without providing seed
# 7
如果你提供不同的种子,它会给你一个不同的随机数
random.seed(9002)
random.randint(1, 10) # this gives you 5 not 1
# 5
因此,总的来说,如果您希望复制相同的随机数,请提供种子。确切地说,是同一颗种子。
随机的。python中的seed(a, version)用于初始化伪随机数生成器(PRNG)。
PRNG是一种生成近似于随机数性质的数列的算法。这些随机数可以使用种子值重新生成。因此,如果您提供种子值,PRNG将使用种子从任意的起始状态开始。
参数a是种子值。如果a值为None,则默认使用当前系统时间。
and version是一个整数,指定如何将参数a转换为整数。缺省值为2。
import random
random.seed(9001)
random.randint(1, 10) #this gives output of 1
# 1
如果你想要复制相同的随机数,那么再次提供相同的种子
random.seed(9001)
random.randint(1, 10) # this will give the same output of 1
# 1
如果你不提供种子,那么它会生成不同的数字,而不是之前的1
random.randint(1, 10) # this gives 7 without providing seed
# 7
如果你提供不同的种子,它会给你一个不同的随机数
random.seed(9002)
random.randint(1, 10) # this gives you 5 not 1
# 5
因此,总的来说,如果您希望复制相同的随机数,请提供种子。确切地说,是同一颗种子。