我有一个脚本可以在2到12之间生成10个随机数:
repetition = 10
while repetition > 0:
print(random.randint(2,12))
repetition = repetition - 1
执行此代码时会生成10个随机数,但每次执行代码时都会生成相同的10个随机数。即使我在另一台计算机上运行代码,也会发生这种情况!
答案 0 :(得分:1)
我在做
时遇到了同样的问题from random import randint
randint(0, 10)
现在我只是做
import random
然后
random.randint(0, 10)
并且有效
答案 1 :(得分:0)
你应该理解的第一件事是计算机生成的随机数并不是随机的。为了生成伪随机数,计算机使用基于先前值生成数字的函数(https://en.wikipedia.org/wiki/Random_number_generation中的更多细节)。伪随机数序列取决于传递给此函数的第一个值,称为种子。
默认情况下,Python的随机模块使用的Random
类'构造函数(__init__
)中,种子由操作系统定义。这通常基于当前系统时间。如果您使用函数random.seed
定义了自己的种子,那么您的结果将是确定性的。在这种情况下,您将始终获得相同的值。
答案 2 :(得分:0)
您可以根据时间设置种子值。每次调用都会改变种子值。
import random
import time
random.seed(time.clock())
repetition = 10
while repetition > 0:
print(random.randint(2,12))
repetition = repetition - 1
答案 3 :(得分:0)
#尝试numpy:
将numpy导入为np
np.random.randint(low = 1,high = 7,size = 10)
#最有可能的是,每次运行后它将为您提供不同的结果。