python 生成不重复的随机数的代码
作者:
用的是筛选法,网上有解释,简单的说 就是先随机生成一串数字,之后用下标来判断这些数字有没有重复,重复的就筛去
复制代码 代码如下:
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')
这是用算法生成的 其实python有方法的
random.sample(list, n)即是从list中随机选取n个不同的元素
复制代码 代码如下:
import random
for i in range(4):
print random.sample(['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'], 7)