如何同时获取多个不同的随机数?
我想做一个乒乓球游戏,里面有两个球,所以我需要两个随机数来决定每个球的初始方向。根据我所知道的,Python会用当前时间作为随机数的种子,所以只要这两个数字在同一时间(就差几毫秒,根本不影响)被请求,它们就会是一样的。我该怎么才能同时得到两个不同的随机数呢?
我试着获取两个不同的随机数,但结果是两个数字是一样的。因此,两个球的方向也就一样了。
1 个回答
2
根据你的代码,出现重复数字的原因可能有很多。这个模块不仅仅使用小时作为时间戳,还会用到更高精度的时间戳,看看下面这个例子:
import random
a = random.random()
b = random.random()
print(a, b)
0.5273803990480128 0.16814494622242826
不过,如果你一次又一次地调用同一个种子,就可以确保产生相同的数字:
import random
for i in range(3):
random.seed(1)
num = random.randint(1, 100)
print(num)
18
18
18
对于你的游戏来说,应该只调用一次种子(如果你想要结果是可重复的)。这个帖子也总结了你问题的答案。
注意:这是我第一次回答问题,所以很欢迎大家给我反馈。