如何同时获取多个不同的随机数?

-4 投票
1 回答
42 浏览
提问于 2025-04-14 16:08

我想做一个乒乓球游戏,里面有两个球,所以我需要两个随机数来决定每个球的初始方向。根据我所知道的,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

对于你的游戏来说,应该只调用一次种子(如果你想要结果是可重复的)。这个帖子也总结了你问题的答案。

注意:这是我第一次回答问题,所以很欢迎大家给我反馈。

撰写回答