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

6 投票
5 回答
25187 浏览
提问于 2025-05-10 15:33

我有一个脚本,它可以生成10个在2到12之间的随机数字:

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

当我运行这个代码时,会生成10个随机数字,但每次我执行这个代码,生成的这10个数字都是一样的。即使我在不同的电脑上运行这个代码,也是如此!

相关问题:

  • 暂无相关问题
暂无标签

5 个回答

-1

我也遇到过同样的问题。

from random import randint

randint(2, 12)

这样做就解决了我的问题。

-1

#试试numpy:

导入numpy库,命名为np

np.random.randint(low=1, high=7, size=10)

#大概率每次运行都会得到不同的结果。

1

你可以根据时间来设置种子值。每次调用的时候,种子值都会变化。

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

我在做这个的时候也遇到了同样的问题。

from random import randint
randint(0, 10)

现在我只需要这样做:

import random

然后再这样:

random.randint(0, 10)

这样就可以了。

3

首先,你需要明白,电脑生成的随机数其实并不是真正的随机。电脑生成伪随机数时,会用一个函数,这个函数会根据之前的一个值来生成新的数字(想了解更多可以看看这个链接)。这些伪随机数的序列是由传给这个函数的第一个值决定的,这个值叫做种子

在Python的随机模块中,Random类的构造函数(__init__)默认情况下,种子的值是由操作系统来定义的。通常这个值是基于当前的系统时间。如果你用random.seed函数自己定义了种子,那么你得到的结果就是确定性的。在这种情况下,你每次都会得到相同的值。

撰写回答