我正在关注这个例子 https://stackoverflow.com/a/9009657/1890488
他将此作为结果
>>> import random
>>> rnd = random.Random(0)
>>> [rnd.randint(0, 10) for i in range(10)]
[9, 8, 4, 2, 5, 4, 8, 3, 5, 6]
>>> rnd = random.Random(0)
>>> [rnd.randint(0, 10) for i in range(10)]
[9, 8, 4, 2, 5, 4, 8, 3, 5, 6]
>>> rnd = random.Random(1)
>>> [rnd.randint(0, 10) for i in range(10)]
[1, 9, 8, 2, 5, 4, 7, 8, 1, 0]
我几乎没有问题
答案 0 :(得分:3)
前两个序列是相同的,因为您使用相同的值为它们播种。这是一个功能。
Setable seed使您可以通过重复使用相同的种子来有意重复序列。例如,这可用于实现与原始游戏完全等效的游戏重放,尽管游戏使用随机数生成器进行游戏中的遭遇或用于某些人工智能决策。
答案 1 :(得分:2)
因为它只是一个伪随机生成器。这是一个函数(在数学意义上),具有很好的平方分布。通常的做法是使用系统时间(以毫秒为单位)作为种子:
rnd = random.Random(int(round(time.time() * 1000)))