Warm tip: This article is reproduced from serverfault.com, please click

python-random.seed():它有什么作用?

(python - random.seed(): What does it do?)

发布于 2014-03-25 15:46:46

我对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

我找不到这方面的好文档。

Questioner
Ahaan S. Rungta
Viewed
11
Eric Finn 2014-03-25 23:52:57

伪随机数生成器通过对值执行一些操作来工作。通常,此值是生成器生成的前一个数字。但是,第一次使用生成器时,没有以前的值。

为伪随机数生成器做种子会为其提供第一个“前一个”值。每个种子值将对应于给定随机数生成器的一系列生成值。也就是说,如果你提供相同的种子两次,你将获得两次相同的数字序列。

通常,你希望为随机数生成器设置一些值,该值会改变程序的每次执行。例如,当前时间是一个经常使用的种子。这不会自动发生的原因是,如果你愿意,你可以提供特定的种子来获得已知的数字序列。