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模块搜索概念介绍及模块安装方法介绍
Jun 03 Python
利用信号如何监控Django模型对象字段值的变化详解
Nov 27 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
Feb 25 Python
详解Python的三种可变参数
May 08 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
Jun 17 Python
Python3中的最大整数和最大浮点数实例
Jul 09 Python
Windows上安装tensorflow  详细教程(图文详解)
Feb 04 Python
TensorFlow的reshape操作 tf.reshape的实现
Apr 19 Python
jupyter notebook oepncv 显示一张图像的实现
Apr 24 Python
Python中and和or如何使用
May 28 Python
Python如何避免文件同名产生覆盖
Jun 09 Python
Python requests库参数提交的注意事项总结
Mar 29 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 一元分词算法
2009/11/30 PHP
编写PHP脚本过滤用户上传的图片
2015/07/03 PHP
PHP7原生MySQL数据库操作实现代码
2020/07/03 PHP
DOMAssitant最新版 DOMAssistant 2.5发布
2007/12/25 Javascript
JavaScript游戏之优化篇
2010/11/08 Javascript
js相册效果代码(点击创建即可)
2013/04/16 Javascript
原生js实现改变随意改变div属性style的名称和值的结果
2013/09/26 Javascript
javascript中负数算术右移、逻辑右移的奥秘探索
2013/10/17 Javascript
javascript函数自动执行常用方法汇总
2016/03/28 Javascript
js简单正则验证汉字英文及下划线的方法
2016/11/28 Javascript
JavaScript数据结构之链表的实现
2017/03/19 Javascript
React Native实现地址挑选器功能
2017/10/24 Javascript
JS实现模糊查询带下拉匹配效果
2018/06/21 Javascript
微信小程序实现tab左右切换效果
2020/11/15 Javascript
使用JQuery自动完成插件Auto Complete详解
2019/06/18 jQuery
跟老齐学Python之有点简约的元组
2014/09/24 Python
教大家玩转Python字符串处理的七种技巧
2017/03/31 Python
利用python实现.dcm格式图像转为.jpg格式
2020/01/13 Python
matlab灰度图像调整及imadjust函数的用法详解
2020/02/27 Python
新建文件时Pycharm中自动设置头部模板信息的方法
2020/04/17 Python
python输出结果刷新及进度条的实现操作
2020/07/13 Python
Python实现微信表情包炸群功能
2021/01/28 Python
美国购买体育赛事门票网站:TicketCity
2019/03/06 全球购物
销售高级职员求职信
2013/10/29 职场文书
自动化专业个人求职信范文
2013/11/29 职场文书
机电专业个人求职信范文
2013/12/30 职场文书
体育专业学生自我评价范文
2014/01/17 职场文书
数控专业个人求职信范文
2014/02/05 职场文书
行政内勤岗位职责
2014/04/07 职场文书
超市仓管员岗位职责
2014/04/07 职场文书
2014年护士个人工作总结
2014/11/11 职场文书
酒店采购员岗位职责
2015/04/03 职场文书
2015年度绩效考核工作总结
2015/05/27 职场文书
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python
MySQL 存储过程的优缺点分析
2021/05/20 MySQL
Python爬虫中urllib3与urllib的区别是什么
2021/07/21 Python