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 08 Python
Python实现动态添加类的属性或成员函数的解决方法
Jul 16 Python
python删除特定文件的方法
Jul 30 Python
浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)
Apr 27 Python
python opencv3实现人脸识别(windows)
May 25 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
Nov 10 Python
Python File(文件) 方法整理
Feb 18 Python
Django Sitemap 站点地图的实现方法
Apr 29 Python
python 批量修改 labelImg 生成的xml文件的方法
Sep 09 Python
Python 分布式缓存之Reids数据类型操作详解
Jun 24 Python
Django使用django-simple-captcha做验证码的实现示例
Jan 07 Python
用Python编写简单的gRPC服务的详细过程
Jul 04 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
动画 《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
十天学会php之第二天
2006/10/09 PHP
PHP中去掉字符串首尾空格的方法
2012/05/19 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
用javascript实现给出的盒子的序列是否可连为一矩型
2007/08/30 Javascript
JavaScript 对象成员的可见性说明
2009/10/16 Javascript
JavaScript window.setTimeout() 的详细用法
2009/11/04 Javascript
javascript下arguments,caller,callee,call,apply示例及理解
2009/12/24 Javascript
编写自己的jQuery插件简单实现代码
2011/04/19 Javascript
推荐30个新鲜出炉的精美 jQuery 效果
2012/03/26 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
使用insertAfter()方法在现有元素后添加一个新元素
2014/05/28 Javascript
js根据鼠标移动速度背景图片自动旋转的方法
2015/02/28 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
2016/09/08 Javascript
BootStrop前端框架入门教程详解
2016/12/25 Javascript
BootStrap中Table隐藏后显示问题的实现代码
2017/08/31 Javascript
React Native 截屏组件的示例代码
2017/12/06 Javascript
jQuery实现的页面详情展开收起功能示例
2018/06/11 jQuery
vue-cli2.x项目优化之引入本地静态库文件的方法
2018/06/19 Javascript
vue2.x集成百度UEditor富文本编辑器的方法
2018/09/21 Javascript
Bootstrap的aria-label和aria-labelledby属性实例详解
2018/11/02 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
在python中利用最小二乘拟合二次抛物线函数的方法
2018/12/29 Python
使用Python opencv实现视频与图片的相互转换
2019/07/08 Python
通过Turtle库在Python中绘制一个鼠年福鼠
2020/02/03 Python
基于Tensorflow一维卷积用法详解
2020/05/22 Python
HTML5新特性 多线程(Worker SharedWorker)
2017/04/24 HTML / CSS
Melissa香港官网:MDreams
2016/07/01 全球购物
PUMA官方商城:世界领先的运动品牌之一
2016/11/16 全球购物
求高于平均分的学生学号及成绩
2016/09/01 面试题
2014年三八妇女节活动方案
2014/02/28 职场文书
法律七进实施方案
2014/03/15 职场文书
春节联欢晚会主持词
2014/03/24 职场文书
大型演出策划方案
2014/05/28 职场文书
学校教研活动总结
2014/07/02 职场文书
教你利用python实现企业微信发送消息
2021/05/23 Python