gpt4 book ai didi

python - 如何在python中不重复地生成一系列随机数

转载 作者:太空宇宙 更新时间:2023-11-04 03:50:05 25 4
gpt4 key购买 nike

我想生成范围为 (0..."MAX") 的随机数。我想做一个循环,这样每次循环都会生成一个新的唯一随机数(不应重复)。循环将继续总共“MAX”次。总共应该生成“MAX”个随机数。排序时,值应为 0..."MAX";不重复。

限制:- 假设 MAX 比 int 大得多。 (内存中没有存储所有数字排列的内存)

我提出的解决方案:如果我从 0...MAX 播种生成器,是否允许我打印 0 和 MAX 之间的每个唯一数字,如下面的函数所示?假设没有空间来存储所有数字并对其进行洗牌。

for x in range (0, MAX):
random.seed(x)
num=random.randint(0, MAX)
print("seed = ",x, " random number = ", num)

如果上面的答案是肯定的,那么这一代是否是可逆的(我可以从随机数中获取种子吗)?在哪种情况下,如果种子( key )和范围长度相同,这将被视为一种分组密码?

最佳答案

你可以这样做:

input = set()
for i in range(MAX):
input.add(random.randrange(x,y))
print input

在 x 和 y 的范围内,它将选择一些随机值。没有重复意味着你可以使用 set。所以我将这些值添加到设置中。

试试这个。

关于python - 如何在python中不重复地生成一系列随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21744963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com