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爬虫给孩子起个好名字
Feb 14 Python
Python实现购物车功能的方法分析
Nov 10 Python
Python自然语言处理之词干,词形与最大匹配算法代码详解
Nov 16 Python
Python中defaultdict与lambda表达式用法实例小结
Apr 09 Python
Python基于FTP模块实现ftp文件上传操作示例
Apr 23 Python
使用pycharm生成代码模板的实例
May 23 Python
Tensorflow 实现修改张量特定元素的值方法
Jul 30 Python
Python 串口读写的实现方法
Jun 12 Python
ML神器:sklearn的快速使用及入门
Jul 11 Python
Python下opencv图像阈值处理的使用笔记
Aug 04 Python
详解Python 实现 ZeroMQ 的三种基本工作模式
Mar 24 Python
使用PyWeChatSpy自动回复微信拍一拍功能的实现代码
Jul 02 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/12/09 PHP
apache php模块整合操作指南
2012/11/16 PHP
zend framework重定向方法小结
2016/05/28 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
2019/10/24 PHP
身份证号码前六位所代表的省,市,区, 以及地区编码下载
2007/04/12 Javascript
仅Firefox中链接A无法实现模拟点击以触发其默认行为
2011/07/31 Javascript
jquery 无限级联菜单案例分享
2013/03/26 Javascript
浅析node.js中close事件
2014/11/26 Javascript
JavaScript创建闭包的两种方式的优劣与区别分析
2015/06/22 Javascript
text-align:justify实现文本两端对齐 兼容IE
2015/08/19 Javascript
Extjs实现下拉菜单效果
2016/04/01 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
2017/07/10 Javascript
解决Vue打包之后文件路径出错的问题
2018/03/06 Javascript
Electron-vue开发的客户端支付收款工具的实现
2019/05/24 Javascript
js实现带搜索功能的下拉框
2020/01/11 Javascript
[01:06:43]完美世界DOTA2联赛PWL S3 PXG vs GXR 第二场 12.19
2020/12/24 DOTA
Python决策树分类算法学习
2017/12/22 Python
在python中实现同行输入/接收多个数据的示例
2019/07/20 Python
python3利用Axes3D库画3D模型图
2020/03/25 Python
基于python连接oracle导并出数据文件
2020/04/28 Python
Pycharm IDE的安装和使用教程详解
2020/04/30 Python
关于Theano和Tensorflow多GPU使用问题
2020/06/19 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
python 简单的调用有道翻译
2020/11/25 Python
2014年中班元旦活动方案
2014/02/14 职场文书
高考备战决心书
2014/03/11 职场文书
简单租房协议书
2014/04/09 职场文书
小学生暑假家长评语
2014/04/17 职场文书
《中国梦我的梦》中学生演讲稿
2014/08/20 职场文书
走群众路线学习笔记
2014/11/06 职场文书
2015年银行个人工作总结
2015/05/14 职场文书
大学生实习证明
2015/06/16 职场文书
高中开学感言
2015/08/01 职场文书
「SHOW BY ROCK!!」“雫シークレットマインド”组合单曲MV公开
2022/03/21 日漫
如何用H5实现好玩的2048小游戏
2022/07/23 HTML / CSS