我有一个生成 2 到 12 之间的 10 个随机数的脚本:
repetition = 10
while repetition > 0:
print(random.randint(2,12))
repetition = repetition - 1
执行此代码时会生成 10 个随机数,但每次执行代码时都会生成相同的 10 个随机数。即使我在另一台计算机上运行代码,也会发生这种情况!
原文由 Jim 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个生成 2 到 12 之间的 10 个随机数的脚本:
repetition = 10
while repetition > 0:
print(random.randint(2,12))
repetition = repetition - 1
执行此代码时会生成 10 个随机数,但每次执行代码时都会生成相同的 10 个随机数。即使我在另一台计算机上运行代码,也会发生这种情况!
原文由 Jim 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
您应该了解的第一件事是计算机生成的随机数并不是真正随机的。为了生成伪随机数,计算机使用一个函数,该函数根据先前的值生成一个数字(更多详细信息,请参见 https://en.wikipedia.org/wiki/Random_number_generation )。伪随机数的序列取决于传递给该函数的第一个值,称为 seed 。
默认情况下,在
Random
类的构造函数(__init__
)中,由 Python 的随机模块使用,种子由操作系统定义。这通常基于当前系统时间。如果您使用函数random.seed
定义了自己的种子,您的结果将是确定性的。在这种情况下,您将始终获得相同的值。