设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

【每日一坑 1】 随机取数

  [复制链接]

0

主题

0

好友

49

积分

新手上路

Rank: 1

楼主
发表于 2013-12-15 14:19:53 |显示全部楼层
  1. # -*- coding: utf-8 -*-
  2. #题目:从1~n中,随机取m个数。1<=m<=n

  3. import random

  4. def pick():
  5.         '''
  6.         Please make sure n, m are integers and 1 <= m <= n.
  7.         '''
  8.         try:
  9.                
  10.                 n = int(input('Give me a range of numbers: '))
  11.                 m = int(input('Tell me how many numbers that you want to pick: '))
  12.                 if 1 <= m <= n:
  13.                         print (sorted(random.sample([i for i in range(1, int(n)+1)], int (m))))
  14.                 else:
  15.                         print pick.__doc__

  16.         except:
  17.                 print pick.__doc__


  18. pick()
复制代码
借鉴了nodejx的random.sample用法
回复

使用道具 举报

0

主题

0

好友

49

积分

新手上路

Rank: 1

沙发
发表于 2013-12-18 13:25:33 |显示全部楼层
阿聪 发表于 2013-12-17 20:17
我用random.sample(range(1,n),m)
分别测试了100,1000。sorted(set(li))排序看结果
没发现重复啊,这个方法 ...
random.sample(population, k)
Return a k length list of unique elements chosen from the population sequence. Used for random sampling without replacement.


引用官方文档,不会重复。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-2 16:42 , Processed in 0.017574 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部