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 GAE、Django导出Excel的方法
Nov 24 Python
Python 数据结构之旋转链表
Feb 25 Python
Python实现的生产者、消费者问题完整实例
May 30 Python
python单例模式实例解析
Aug 28 Python
浅谈Python 列表字典赋值的陷阱
Jan 20 Python
python Tkinter的图片刷新实例
Jun 14 Python
python3.6 tkinter实现屏保小程序
Jul 30 Python
用python3 urllib破解有道翻译反爬虫机制详解
Aug 14 Python
详解python路径拼接os.path.join()函数的用法
Oct 09 Python
PYTHON绘制雷达图代码实例
Oct 15 Python
python装饰器代替set get方法实例
Dec 19 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
Apr 07 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
在PHP中养成7个面向对象的好习惯
2010/01/28 PHP
Smarty的配置与高级缓存技术分享
2012/06/05 PHP
php读取txt文件并将数据插入到数据库
2016/02/23 PHP
PHP实现正则表达式分组捕获操作示例
2018/02/03 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
2019/09/30 PHP
Javascript中的Split使用方法与技巧
2007/03/09 Javascript
学习ExtJS Panel常用方法
2009/10/07 Javascript
使用jquery.validate自定义方法实现&quot;手机号码或者固话至少填写一个&quot;的逻辑验证
2014/09/01 Javascript
jQuery中:first-child选择器用法实例
2014/12/31 Javascript
JQuery控制div外点击隐藏而div内点击不会隐藏的方法
2015/01/13 Javascript
jQuery实现鼠标经过像翻页和描点链接效果
2016/08/08 Javascript
jQuery实现可移动选项的左右下拉列表示例
2016/12/26 Javascript
JS正则替换去空格的方法
2017/03/24 Javascript
解析NodeJS异步I/O的实现
2017/04/13 NodeJs
基于JavaScript实现的快速排序算法分析
2017/04/14 Javascript
详解Vue路由开启keep-alive时的注意点
2017/06/20 Javascript
vue2.0 路由模式mode=&quot;history&quot;的作用
2018/10/18 Javascript
如何使用electron-builder及electron-updater给项目配置自动更新
2018/12/24 Javascript
微信小程序如何连接Java后台
2019/08/08 Javascript
Vue中的transition封装组件的实现方法
2019/08/13 Javascript
vue路由传参的基本实现方式小结【三种方式】
2020/02/05 Javascript
jquery向后台提交数组的代码分析
2020/02/20 jQuery
echarts柱状图背景重叠组合而非并列的实现代码
2020/12/10 Javascript
使用py2exe在Windows下将Python程序转为exe文件
2016/03/04 Python
python3 selenium 切换窗口的几种方法小结
2018/05/21 Python
Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】
2019/01/07 Python
Python Django实现layui风格+django分页功能的例子
2019/08/29 Python
基于python实现地址和经纬度转换
2020/05/19 Python
如何查看python关键字
2021/01/17 Python
新西兰航空中国官网:Air New Zealand China
2018/07/24 全球购物
英国奢侈品概念店:Base Blu
2019/05/16 全球购物
校领导推荐信
2013/11/01 职场文书
自我推荐书
2013/12/04 职场文书
毕业生自荐书
2013/12/18 职场文书
婚礼证婚人演讲稿
2014/09/13 职场文书
本科毕业论文致谢怎么写
2015/05/14 职场文书