我对random.seed()Python 中的功能有点困惑。例如,为什么以下试验会(始终如一地)做他们所做的事情?
random.seed()
>>> 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
我找不到这方面的好文档。
伪随机数生成器通过对值执行一些操作来工作。通常,此值是生成器生成的先前数字。但是,第一次使用生成器时,没有以前的值。
播种一个伪随机数生成器会为其提供第一个“先前”值。每个种子值将对应于给定随机数生成器的一系列生成值。也就是说,如果您提供两次相同的种子,您将获得两次相同的数字序列。
通常,您希望为随机数生成器播种一些值,该值将改变程序的每次执行。例如,当前时间是一个经常使用的种子。这不会自动发生的原因是,如果你愿意,你可以提供一个特定的种子来获得一个已知的数字序列。