首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在python中创建一个不会产生重复数的随机数生成器

如何在python中创建一个不会产生重复数的随机数生成器
EN

Stack Overflow用户
提问于 2018-08-05 04:00:25
回答 3查看 272关注 0票数 1

我有一个简单的python代码来创建随机数,如下所示

代码语言:javascript
复制
import random
for x in range(100):
    print (random.randint(1,100))

尽管这段代码创建了随机数,但它仍然可以创建副本,有谁能帮我解决这个问题,让它不能打印副本?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-08-05 04:03:31

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

代码语言:javascript
复制
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.
票数 3
EN

Stack Overflow用户

发布于 2018-08-05 04:02:24

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

这是我最好的猜测,但我不会给你写任何代码,你最好找出答案并学习。如果你确实需要一个代码示例,请让我知道,我可以为你做一个。

票数 0
EN

Stack Overflow用户

发布于 2018-08-05 04:18:56

代码语言:javascript
复制
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!")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51689157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档