我对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
我找不到关于这方面的好的文件。
在生成一组随机数之前设置种子(x),并使用相同的种子生成相同的随机数集。在重现问题的情况下很有用。
>>> from random import *
>>> seed(20)
>>> randint(1,100)
93
>>> randint(1,100)
88
>>> randint(1,100)
99
>>> seed(20)
>>> randint(1,100)
93
>>> randint(1,100)
88
>>> randint(1,100)
99
>>>
# Simple Python program to understand random.seed() importance
import random
random.seed(10)
for i in range(5):
print(random.randint(1, 100))
多次执行上面的程序…
第一次尝试:输出5个范围为1 ~ 100的随机整数
第二次尝试:打印相同的5个随机数字出现在上面的执行。
第三次尝试:相同
…等等
解释:每次运行上述程序时,我们都将seed设置为10,然后随机生成器将其作为参考变量。然后用一些预定义的公式,生成一个随机数。
因此,在下次执行时将seed设置为10,再次将引用号设置为10,然后再次启动相同的行为…
只要我们重置种子值,它就会给出相同的植物。
注意:改变种子值并运行程序,你会看到一个与前一个不同的随机序列。