为什么Python random会生成相同的数字?

为什么Python random会生成相同的数字?,python,python-3.x,random,Python,Python 3.x,Random,我为我的家庭作业写了以下代码: import random score=[] random.seed(1) for i in range(0,100): score.append(random.randrange(0,21)) for k in range(20, -1, -1): print("Who get %2d score in test? : "%(k), end='') while score.count(k)!=0: j = score.i

我为我的家庭作业写了以下代码:

import random
score=[]
random.seed(1)
for i in range(0,100):
    score.append(random.randrange(0,21))

for k in range(20, -1, -1):
    print("Who get %2d score in test? : "%(k), end='')
    while score.count(k)!=0:
        j = score.index(k)
        print("%3s" % (j), end="  ")
        score.remove(k)
        score.insert(j,25)
    print("\n")
我在电脑上运行了很多次,结果都是一样的。讽刺的是,在其他计算机中,结果与我的计算机不同,但每次执行时也会重复

我的代码怎么了?

random。种子(n)
每次运行程序时都从同一点启动随机数生成器

也就是说,你得到的是相同的随机数序列。这就像是拍摄掷骰子的视频,然后每次都回放——数字是随机的(准确地说是伪随机的),但你是在回放序列

这对于测试非常有用,例如:您可以使用相同的随机数运行不同版本的程序,因此您可以确定结果的差异仅是由于程序造成的,而不是偶然造成的

取出random.seed,您将得到一个从随机位置开始的序列。(在大多数计算机上,如果未指定种子,则程序启动的时钟时间会隐式用作种子。)

写入时

random.seed(1)
你是说总是使用相同的随机生成的数字序列,因此你总是有相同的结果。 当我在我的电脑上运行它时,它也会发生

只要删除该行,您每次都应该有不同的随机生成的数字

有关种子的说明,请参阅


删除你的随机.seed()调用。你朋友的计算机上有相同的python版本吗?如果你在朋友的同一台计算机上运行两次,它会给出相同的结果吗?我尝试过,每次运行时它也总是给我相同的列表,这与计算机无关。如上所述,这是由于随机数生成器的出现。由于这个原因,人们可能会因为无法从本例中获得相同的中心极限定理结果而感到痛苦,因为为总体生成的样本在不同的机器之间是不同的: