如何在python中创建不创建重复数字的随机数生成器



我有一个简单的python代码来创建随机数,这里是

import random
for x in range(100):
print (random.randint(1,100))

即使这个代码创建了随机数,它仍然可以创建重复项,有人能帮我想出一个主意,让它不能打印重复项吗?

首先生成数字,然后对其进行混洗,然后从该列表中进行选择。

import random
numbers = list(range(100))  # `numbers` is now a list [0, 1, ..., 99] 
random.shuffle(numbers)  # the list is now in random order
while numbers:  # While there are numbers left, 
a = numbers.pop()  # take one from the list,
print(a)  # and print it.

您可以将它刚刚生成的随机数存储到一个列表中,然后每次遍历该列表以生成另一个数字。如果列表中存在新生成的编号,则将其废弃并进行另一代生成。

这是我最好的猜测,但我不会给你写任何代码,最好你弄清楚并学习。如果你确实需要一个代码示例,请告诉我,我可以为你做一个。

import random

mySet = set()
totalTries = 20
for i in range(totalTries):
mySet.add(random.randint(0, 20))
###................................
_ = [print(str(x) + ", ", end="") for x in mySet]
print("n")
print(str(totalTries - len(mySet)) + "  duplicates were dropped!")

最新更新