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实现代理服务功能实例
Nov 15 Python
跟老齐学Python之折腾一下目录
Oct 24 Python
解析Python中while true的使用
Oct 13 Python
Python中使用bidict模块双向字典结构的奇技淫巧
Jul 12 Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
Jul 22 Python
Python通用循环的构造方法实例分析
Dec 19 Python
Python高斯消除矩阵
Jan 02 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
Aug 31 Python
Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow
Apr 20 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
May 04 Python
Pytorch转tflite方式
May 25 Python
记录一下scrapy中settings的一些配置小结
Sep 28 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不用正则采集速度探究总结
2008/03/24 PHP
php实现memcache缓存示例讲解
2013/12/04 PHP
php生成二维码时出现中文乱码的解决方法
2014/12/18 PHP
discuz目录文件资料汇总
2014/12/30 PHP
windows中为php安装mongodb与memcache
2015/01/06 PHP
PHP连接操作access数据库实例
2015/03/30 PHP
php自定义分页类完整实例
2015/12/25 PHP
PHP中addslashes与mysql_escape_string的区别分析
2016/04/25 PHP
thinkphp分页集成实例
2017/07/24 PHP
JavaScript之引用类型介绍
2012/08/10 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
Jquery Post处理后不进入回调的原因及解决方法
2014/07/15 Javascript
JavaScript中Cookie操作实例
2015/01/09 Javascript
js判断某个方法是否存在实例代码
2015/01/10 Javascript
详细解密jsonp跨域请求
2015/04/15 Javascript
js闭包所用的场合以及优缺点分析
2015/06/22 Javascript
vue中使用localstorage来存储页面信息
2017/11/04 Javascript
vue解决跨域问题(推荐)
2020/11/10 Javascript
一篇文章让你搞懂JavaScript 原型和原型链
2020/11/23 Javascript
python编程-将Python程序转化为可执行程序[整理]
2007/04/09 Python
Python实现通过文件路径获取文件hash值的方法
2017/04/29 Python
Python实现数据库并行读取和写入实例
2017/06/09 Python
Python程序包的构建和发布过程示例详解
2019/06/09 Python
python找出因数与质因数的方法
2019/07/25 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
2020/08/27 Python
python中scipy.stats产生随机数实例讲解
2021/02/19 Python
详解Sticky Footer 绝对底部的两种套路
2017/11/03 HTML / CSS
DogBuddy荷兰:找到你最完美的狗保姆
2019/04/17 全球购物
2014年圣诞节促销方案
2014/03/14 职场文书
2014审计局领导班子民主生活会对照检查材料思想汇报
2014/09/20 职场文书
教师师德师风自我剖析材料
2014/09/29 职场文书
失职检讨书大全
2015/01/26 职场文书
毕业赠语大全
2015/06/23 职场文书
优秀团员主要事迹材料
2015/11/05 职场文书
浅谈Python响应式类库RxPy
2021/06/14 Python
VUE中的v-if与v-show区别介绍
2022/03/13 Vue.js