Python编程实现生成特定范围内不重复多个随机数的2种方法


Posted in Python onApril 14, 2017

本文实例讲述了Python编程实现生成特定范围内不重复多个随机数的2种方法。分享给大家供大家参考,具体如下:

在近期进行的一个实验中,需要将数据按一定比例随机分割为两个部分。这一问题的核心其实就是产生不重复随机数的问题。首先想到的递归的方法,然后才发现Python中居然已经提供了此方法的函数,可以直接使用。具体代码如下:

#生成某区间内不重复的N个随机数的方法
import random;
#1、利用递归生成
resultList=[];#用于存放结果的List
A=1; #最小随机数
B=10 #最大随机数
COUNT=10
#生成随机数的递归数学,参数counter表示当前准备要生成的第几个有效随机数
def generateRand(counter):
  tempInt=random.randint(A,B); # 生成一个范围内的临时随机数,
  if(counter<=COUNT): # 先看随机数的总个数是不是够了,如果不够
    if(tempInt not in resultList): # 再检查当前已经生成的临时随机数是不是已经存在,如果不存在
      resultList.append(tempInt); #则将其追加到结果List中
      counter+=1;# 然后将表示有效结果的个数加1. 请注意这里,如果临时随机数已经存在,则此if不成立,那么将直接执行16行,counter不用再加1
    generateRand(counter); # 不管上面的if是否成立,都要递归。如果上面的临时随机数有效,则这里的conter会加1,如果上面的临时随机数已经存在了,则需要重新再生成一次随机数,counter不能变化
generateRand(1);#调用递归函数,并给当前要生成的有效随机数的个序号置为1,因为要从第一个开始嘛
print(resultList)# 打印结果
#2、利用Python中的randomw.sample()函数实现
resultList=random.sample(range(A,B+1),COUNT); # sample(x,y)函数的作用是从序列x中,随机选择y个不重复的元素。上面的方法写了那么多,其实Python一句话就完成了。
print(resultList)# 打印结果

结果:

Python编程实现生成特定范围内不重复多个随机数的2种方法

Python 相关文章推荐
介绍Python的Urllib库的一些高级用法
Apr 30 Python
Python检测生僻字的实现方法
Oct 23 Python
解决python3在anaconda下安装caffe失败的问题
Jun 15 Python
Python cookbook(数据结构与算法)保存最后N个元素的方法
Feb 13 Python
pygame游戏之旅 创建游戏窗口界面
Nov 20 Python
Python文件打开方式实例详解【a、a+、r+、w+区别】
Mar 30 Python
Django中如何使用sass的方法步骤
Jul 09 Python
在python tkinter界面中添加按钮的实例
Mar 04 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
Mar 30 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
Apr 03 Python
Jupyter打开图形界面并画出正弦函数图像实例
Apr 24 Python
Django filter动态过滤与排序实现过程解析
Nov 26 Python
Python编程判断一个正整数是否为素数的方法
Apr 14 #Python
python编程实现归并排序
Apr 14 #Python
python实现折半查找和归并排序算法
Apr 14 #Python
Python+Wordpress制作小说站
Apr 14 #Python
Python 中 list 的各项操作技巧
Apr 13 #Python
简单的python后台管理程序
Apr 13 #Python
python算法表示概念扫盲教程
Apr 13 #Python
You might like
通达OA公共代码 php常用检测函数
2011/12/14 PHP
php遍历数组的方法分享
2012/03/22 PHP
PHP使用CURL实现多线程抓取网页
2015/04/30 PHP
CI框架AR数据库操作常用函数总结
2016/11/21 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
jQuery Clone Bug解决代码
2010/12/22 Javascript
使用Jquery来实现可以输入值的下拉选单 雏型
2011/12/06 Javascript
JavaScript中var关键字的使用详解
2015/08/14 Javascript
JavaScript仿商城实现图片广告轮播实例代码
2016/02/06 Javascript
AngularJS 入门教程之HTML DOM实例详解
2016/07/28 Javascript
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
Node.js模块全局安装路径配置方法
2018/05/17 Javascript
使用Vue CLI创建typescript项目的方法
2019/08/09 Javascript
javascript设计模式之迭代器模式
2020/01/30 Javascript
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
React实现类似淘宝tab居中切换效果的示例代码
2020/06/02 Javascript
vue+AI智能机器人回复功能实现
2020/07/16 Javascript
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
Python实现向QQ群成员自动发邮件的方法
2014/11/19 Python
解决python 输出是省略号的问题
2018/04/19 Python
Django实战之用户认证(用户登录与注销)
2018/07/16 Python
python中pip的安装与使用教程
2018/08/10 Python
使用Python的toolz库开始函数式编程的方法
2018/11/15 Python
Python如何访问字符串中的值
2020/02/09 Python
sqlalchemy实现时间列自动更新教程
2020/09/02 Python
详解CSS3的图层阴影和文字阴影效果使用
2016/06/09 HTML / CSS
美国紧身牛仔裤品牌:NYDJ
2017/05/24 全球购物
英国医生在线预约:Top Doctors
2019/10/30 全球购物
美国浴缸、水槽和水龙头购物网站:Vintage Tub & Bath
2019/11/05 全球购物
职业规划实施方案
2014/06/10 职场文书
体育教育毕业生自荐信
2014/06/29 职场文书
人事经理岗位职责范本
2014/08/04 职场文书
农村党建工作汇报材料
2014/10/27 职场文书
鸟的天堂导游词
2015/01/31 职场文书
督导岗位职责
2015/02/04 职场文书
薪资证明范本
2015/06/19 职场文书