本文共 2010 字,大约阅读时间需要 6 分钟。
怎么不能修改了?给个带测试的
#! /usr/bin/env python
# -*- coding: cp936 -*-
import random
from mytictoc import tic, toc
def randDiff( k,n ):
'产生k个不相等的从1到n的随机数'
p = []
y1 = [random.randrange(1,n+1) for i in range(n)]
y2 = []
y2.extend(y1)
y1.sort()
for j in range(k):
temp1 = y1[j]
temp2 = y2.index(temp1)
p.append(temp2 + 1)
y2[temp2] = -1
return p
def randDif(k,n):
'新函数,生成k个1到n之间不相等的随机数'
if k>n:
return []
a = range(1,n+1)
random.shuffle(a)
return a[:k]
if __name__=='__main__':
for i in xrange(10):
print i,'====================='
tic()
print "Old function: ", randDiff(3,10)
toc()
tic()
print "New function: ", randDif(3,10)
toc()测试结果:
0 =====================
Old function: [1, 7, 10]
Elapsed time: 0.00023997 seconds
New function: [3, 1, 7]
Elapsed time: 0.00011845 seconds
1 =====================
Old function: [9, 3, 5]
Elapsed time: 0.00020338 seconds
New function: [6, 3, 8]
Elapsed time: 0.00010476 seconds
2 =====================
Old function: [7, 10, 1]
Elapsed time: 0.00020394 seconds
New function: [6, 5, 8]
Elapsed time: 0.00010476 seconds
3 =====================
Old function: [3, 4, 5]
Elapsed time: 0.00019835 seconds
New function: [2, 4, 8]
Elapsed time: 0.00010504 seconds
4 =====================
Old function: [1, 5, 7]
Elapsed time: 0.00019863 seconds
New function: [1, 9, 6]
Elapsed time: 0.00010392 seconds
5 =====================
Old function: [2, 10, 1]
Elapsed time: 0.00020310 seconds
New function: [4, 8, 1]
Elapsed time: 0.00010448 seconds
6 =====================
Old function: [5, 4, 1]
Elapsed time: 0.00019835 seconds
New function: [6, 5, 9]
Elapsed time: 0.00010364 seconds
7 =====================
Old function: [6, 10, 3]
Elapsed time: 0.00020254 seconds
New function: [9, 8, 1]
Elapsed time: 0.00010448 seconds
8 =====================
Old function: [6, 3, 8]
Elapsed time: 0.00019891 seconds
New function: [5, 1, 10]
Elapsed time: 0.00010895 seconds
9 =====================
Old function: [7, 3, 5]
Elapsed time: 0.00019667 seconds
New function: [2, 9, 8]
Elapsed time: 0.00010756 seconds
转载地址:https://blog.csdn.net/weixin_39669265/article/details/110905910 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!