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 ZipFile模块详解
Nov 01 Python
Python continue语句用法实例
Mar 11 Python
零基础写python爬虫之爬虫的定义及URL构成
Nov 04 Python
合并百度影音的离线数据( with python 2.3)
Aug 04 Python
菜鸟使用python实现正则检测密码合法性
Jan 05 Python
Python解析json文件相关知识学习
Mar 01 Python
老生常谈Python基础之字符编码
Jun 14 Python
Django如何自定义分页
Sep 25 Python
python 随机打乱 图片和对应的标签方法
Dec 14 Python
python统计中文字符数量的两种方法
Jan 31 Python
python登录WeChat 实现自动回复实例详解
May 28 Python
Python代码注释规范代码实例解析
Aug 14 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 is_file()和is_dir()用于遍历目录时用法注意事项
2010/03/02 PHP
php之curl实现http与https请求的方法
2014/10/21 PHP
php上传图片并压缩的实现方法
2015/12/22 PHP
PHP中利用sleep函数实现定时执行功能实现代码
2016/08/25 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
2016/10/10 PHP
laravel框架查询数据集转为数组的两种方法
2019/10/10 PHP
Laravel 在views中加载公共页面的实现代码
2019/10/22 PHP
用javascript获取地址栏参数
2006/12/22 Javascript
JQuery 简便实现页面元素数据验证功能
2007/03/24 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
2012/01/15 Javascript
javascript判断非数字的简单例子
2013/07/18 Javascript
JavaScript中的类与实例实现方法
2015/01/23 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
2015/09/27 Javascript
实例讲解jQuery中对事件的命名空间的运用
2016/05/24 Javascript
多种方式实现js图片预览
2016/12/12 Javascript
javascript设计模式之单体模式学习笔记
2017/02/15 Javascript
jQuery中Chosen三级联动功能实例代码
2017/03/07 Javascript
ES6中Proxy代理用法实例浅析
2017/04/06 Javascript
node打造微信个人号机器人的方法示例
2018/04/26 Javascript
使用React-Router实现前端路由鉴权的示例代码
2020/07/26 Javascript
[01:02:07]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python读写ini文件示例(python读写文件)
2014/03/25 Python
python实现的多线程端口扫描功能示例
2017/01/21 Python
python中requests库session对象的妙用详解
2017/10/30 Python
python3判断url链接是否为404的方法
2018/08/10 Python
python和php学习哪个更有发展
2020/06/17 Python
CSS3实现类似翻书效果的过渡动画的示例代码
2019/09/06 HTML / CSS
Why do we need Unit test
2013/01/03 面试题
成品仓管员工作职责
2013/12/29 职场文书
便利店投资创业计划书
2014/02/08 职场文书
小学安全教育月活动总结
2014/07/07 职场文书
2015年全国保险公众宣传日活动方案
2015/05/06 职场文书
全民创业工作总结
2015/08/13 职场文书
Python爬虫:从m3u8文件里提取小视频的正确操作
2021/05/14 Python
PYTHON使用Matplotlib去实现各种条形图的绘制
2022/03/22 Python
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
2022/04/07 Servers