如何从范围(0, 99)中选择10个不同的整数

2 投票
4 回答
2002 浏览
提问于 2025-04-16 05:59

我想从0到99之间随机选10个整数。我知道可以用:

random.randint(a, b)

但是我怎么告诉randint()只要不同的整数呢?

我是不是得在每次生成随机数后检查一下这个整数是不是已经生成过,如果生成过就再调用一次这个方法?这样做好像不是最好的办法。

4 个回答

1

这可能不是一个解决办法,具体要看你打算怎么用这个... 但是你有没有想过把它分成10个不同的随机数生成器?比如说,0到9,10到19,20到29,等等。我想这样做其实并不是那么“随机”,因为你指定了不同的范围,并且每个范围里都能保证有一个数字。还有一个我能想到的办法,就是先准备一个随机整数的列表,然后一个一个检查,看这个随机数是不是已经生成过,如果生成过,就再用random.randint()重新生成。

8

这里有一个通用的策略,不管用什么编程语言都适用。首先,生成一个包含100个数字的数组,这些数字从0到99。然后,从0到99中随机选择一个数字,把这个位置的数字和数组第一个位置的数字交换。接下来,从1到9中,每次选择一个随机数字(范围是从当前的i到99),把这个位置的数字和第i个位置的数字交换。这样,你的10个随机数字就会出现在数组的前10个位置。

10
from random import sample

sample(range(0, 100), 10)

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

撰写回答