random.randint(2, 12) 每次在 Python 中运行时返回相同的结果

新手上路,请多包涵

我有一个生成 2 到 12 之间的 10 个随机数的脚本:

 repetition = 10
while repetition > 0:
    print(random.randint(2,12))
    repetition = repetition - 1

执行此代码时会生成 10 个随机数,但每次执行代码时都会生成相同的 10 个随机数。即使我在另一台计算机上运行代码,也会发生这种情况!

原文由 Jim 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
1 个回答

您应该了解的第一件事是计算机生成的随机数并不是真正随机的。为了生成伪随机数,计算机使用一个函数,该函数根据先前的值生成一个数字(更多详细信息,请参见 https://en.wikipedia.org/wiki/Random_number_generation )。伪随机数的序列取决于传递给该函数的第一个值,称为 seed

默认情况下,在 Random 类的构造函数( __init__ )中,由 Python 的随机模块使用,种子由操作系统定义。这通常基于当前系统时间。如果您使用函数 random.seed 定义了自己的种子,您的结果将是确定性的。在这种情况下,您将始终获得相同的值。

原文由 Gustavo Santos 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题