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获取beautifulphoto随机某图片代码实例
Dec 18 Python
使用Python装饰器在Django框架下去除冗余代码的教程
Apr 16 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
Jan 30 Python
三步实现Django Paginator分页的方法
Jun 11 Python
pandas 数据索引与选取的实现方法
Jun 21 Python
如何在Cloud Studio上执行Python代码?
Aug 09 Python
python实现人脸签到系统
Apr 13 Python
Python函数必须先定义,后调用说明(函数调用函数例外)
Jun 02 Python
解决运行出现'dict' object has no attribute 'has_key'问题
Jul 15 Python
python中os.remove()用法及注意事项
Jan 31 Python
Python基于爬虫实现全网搜索并下载音乐
Feb 14 Python
Python函数中apply、map、applymap的区别
Nov 27 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
追忆往昔!浅谈收音机的百年发展历史
2021/03/01 无线电
php中的抽象方法和抽象类
2017/02/14 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
2017/02/15 PHP
php curl获取到json对象并转成数组array的方法
2018/05/31 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
2019/07/08 PHP
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
2011/11/21 Javascript
js setTimeout()函数介绍及应用以倒计时为例
2013/12/12 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
2014/01/10 Javascript
javascript 处理null及null值示例
2014/06/09 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件体系结构
2015/11/19 Javascript
Javascript缓存API
2016/06/14 Javascript
jQuery实现简单的网页换肤效果示例
2016/09/18 Javascript
React-router v4 路由配置方法小结
2017/08/08 Javascript
JS解决position:sticky的兼容性问题的方法
2017/10/17 Javascript
Element-ui自定义table表头、修改列标题样式、添加tooltip、:render-header使用
2019/04/11 Javascript
JS数组方法push()、pop()用法实例分析
2020/01/18 Javascript
python异步任务队列示例
2014/04/01 Python
python中管道用法入门实例
2015/06/04 Python
python下os模块强大的重命名方法renames详解
2017/03/07 Python
对pandas的dataframe绘图并保存的实现方法
2017/08/05 Python
使用Python编写Prometheus监控的方法
2018/10/15 Python
python 的 scapy库,实现网卡收发包的例子
2019/07/23 Python
Python上下文管理器用法及实例解析
2019/11/11 Python
使用Python实现Wake On Lan远程开机功能
2020/01/22 Python
Python基于class()实现面向对象原理详解
2020/03/26 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
2020/06/24 Python
Python常用GUI框架原理解析汇总
2020/12/07 Python
联想加拿大官方网站:Lenovo Canada
2018/04/05 全球购物
意大利消费电子产品购物网站:SLG Store
2019/12/26 全球购物
光盘行动倡议书
2014/02/02 职场文书
入党自荐书范文
2014/03/09 职场文书
计算机毕业生自荐信范文
2014/03/23 职场文书
卫校毕业生个人自我鉴定
2014/04/28 职场文书
世界气象日活动总结
2015/02/27 职场文书
2016反腐倡廉警示教育心得体会
2016/01/13 职场文书
世界各国短波电台对东亚播送时间频率表(SW)
2021/06/28 无线电