怎么用python生成随机的且不重复的整数?

我只知道random.randint(0,10)这种,但是会生成重复的数字。怎么用python在指定范围内生成随机的且不重复的整数?... 我只知道random.randint(0,10)这种,但是会生成重复的数字。
怎么用python在指定范围内生成随机的且不重复的整数?
展开
 我来答
霸道的浴霸
高粉答主

2018-03-30 · 说的都是干货,快来关注
知道大有可为答主
回答量:254
采纳率:46%
帮助的人:9.3万
展开全部

v假如你排列的是个数组{1,2,3,4,5}
列数假如也是5 也就是5*5的矩阵
然后让5个数组都随机生成 然后排序
如果两个临近数据相同或相近 这两个数据就是挨着的好像这样:
0:{1,2,3,4,5}
1:{2,3,4,5,1}
2:{2,3,5,1,4}
3:{2,3,5,1,4}
4:{2,3,5,4,1}
那么生成完之后就可以经过一次遍历 把邻近两个进行比较
如果相同就重新生成一个 或者先标记 之后再去

需要用到random模块
import random
n = random.randint(1,10)
会生成一个1到10的随机整数。
插入列表即可
[].append(n)
就好了。你可以做个循环。比如for循环,不断插就好了。

yujie_fudan
推荐于2018-02-27 · TA获得超过469个赞
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:322万
展开全部
一楼思路正确,但是python的random库中已经提供了现成的函数,不需要那么麻烦。
random.sample(list, n)即是从list中随机选取n个不同的元素。
楼主可以试试下面的代码。

import random

for i in range(4):
print random.sample([1, 2, 3, 4, 5, 6, 7, 8], 8)

for i in range(4):
print random.sample(range(10), 10)

for i in range(4):
print random.sample(['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'], 7)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
7764sky
推荐于2016-09-30 · TA获得超过2616个赞
知道大有可为答主
回答量:1245
采纳率:0%
帮助的人:1417万
展开全部
import random
print 'N must >K else error'
n=int(raw_input("n="))
k=int(raw_input("k="))
result=[]
x=range(n)
for i in range(k):
t=random.randint(i,n-1)
temp=x[i]
x[i]=x[t]
x[t]=temp
result.append(x[i])
print result
raw_input('Inpuy AnyKey to exit')

你看下吧 N是范围 K是生成的数量
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bcw104
2010-08-10 · TA获得超过181个赞
知道小有建树答主
回答量:149
采纳率:100%
帮助的人:132万
展开全部
l = []
for i in range(10):
r = random.randint(0,10)
while r in l:
r = random.randint(0,10)
l.append(r)
print r
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式