random.randint(2, 12) 在Python中每次运行结果相同
我有一个脚本,它可以生成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函数自己定义了种子,那么你得到的结果就是确定性的。在这种情况下,你每次都会得到相同的值。