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")
我为我的作业写了这段代码。但是当我运行它时,即使我使用了随机导入,它的结果总是一样的。具有讽刺意味的是,在其他计算机中,如朋友的计算机,代码会得到不同的结果,但它会再次重复。我的代码有什么问题?
答案 0 :(得分:2)
random.seed(n)
都会从同一点启动随机数生成器。
那就是你获得相同的随机数序列。这就像拍摄骰子的视频然后每次播放一样 - 数字是随机的(伪随机准确)但你正在播放序列。
这对于测试非常有用,例如:您可以使用相同的随机数运行不同版本的程序,因此您可以确定结果的差异仅仅取决于程序,而非机会。
随机取出,你会得到一个从随机位置开始的序列。 (在大多数计算机上,如果您没有指定种子,程序启动的时钟时间将被隐含地用作种子。)
答案 1 :(得分:0)
写作时
random.seed(1)
您要说的是始终使用相同的随机生成数字序列,因此您始终拥有相同的结果。 当我在计算机上运行时也会发生这种情况。
只需删除该行,每次都应该有不同的随机生成的数字。
有关种子的解释,请参阅this answer。