python生成1到n的数_Python中产生k个不相等的1到n的随机数
发布日期:2021-06-25 23:15:51 浏览次数:7 分类:技术文章

本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:pythonreshape 1_Python Numpy中reshape函数参数-1的含义
下一篇:oracle insert into select 大数据量_实用存储过程--获取oracle用户下所有表的表名与其数据量...

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月10日 19时14分12秒