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将图片文件转换成base64编码的方法
Mar 14 Python
python编写爬虫小程序
May 14 Python
Python中的anydbm模版和shelve模版使用指南
Jul 09 Python
Python搭建FTP服务器的方法示例
Jan 19 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
Feb 01 Python
python自动登录12306并自动点击验证码完成登录的实现源代码
Apr 25 Python
pygame游戏之旅 添加游戏介绍
Nov 20 Python
详解使用django-mama-cas快速搭建CAS服务的实现
Oct 30 Python
Python Scrapy框架第一个入门程序示例
Feb 05 Python
Python多线程的退出控制实现
Aug 10 Python
Pycharm无法打开双击没反应的问题及解决方案
Aug 17 Python
Python hashlib和hmac模块使用方法解析
Dec 08 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学习 变量使用总结
2011/03/24 PHP
php中mysql模块部分功能的简单封装
2011/09/30 PHP
PHP设置图片文件上传大小的具体实现方法
2013/10/11 PHP
destoon实现调用自增数字从1开始的方法
2014/08/21 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
2016/05/27 PHP
php单例模式的简单实现方法
2016/06/10 PHP
node.js中的fs.futimes方法使用说明
2014/12/17 Javascript
浅谈jquery回调函数callback的使用
2015/01/30 Javascript
JavaScript实现广告的关闭与显示效果实例
2015/07/02 Javascript
深入浅析JavaScript中prototype和proto的关系
2015/11/15 Javascript
JavaScript获取服务器端时间的方法
2016/11/29 Javascript
快速掌握jQuery插件开发
2017/01/19 Javascript
BootStrap与Select2使用小结
2017/02/17 Javascript
JS实现复制功能
2017/03/01 Javascript
jQuery中table数据的值拷贝和拆分
2017/03/19 Javascript
微信小程序实现自定义modal弹窗封装的方法
2018/06/15 Javascript
微信小程序实现团购或秒杀批量倒计时
2020/11/01 Javascript
vue解决弹出蒙层滑动穿透问题的方法
2018/09/22 Javascript
怎么使用javascript深度拷贝一个数组
2019/06/06 Javascript
vscode调试node.js的实现方法
2020/03/22 Javascript
JavaScript装箱及拆箱boxing及unBoxing用法解析
2020/06/15 Javascript
JavaScript实现刮刮乐效果
2020/11/01 Javascript
Python httplib,smtplib使用方法
2008/09/06 Python
python将xml xsl文件生成html文件存储示例讲解
2013/12/03 Python
python3抓取中文网页的方法
2015/07/28 Python
Python常用的爬虫技巧总结
2016/03/28 Python
python3实现微型的web服务器
2019/09/03 Python
python如何将两张图片生成为全景图片
2020/03/05 Python
如何在pycharm中安装第三方包
2020/10/27 Python
Python 实现劳拉游戏的实例代码(四连环、重力四子棋)
2021/03/03 Python
保加利亚服装和鞋类购物网站:Bibloo.bg
2020/11/08 全球购物
武汉世纪畅想数字传播有限公司 .NET笔试题
2015/06/13 面试题
《小小雨点》教学反思
2014/02/18 职场文书
保护环境倡议书范文
2014/05/13 职场文书
给校长的一封检讨书
2014/09/20 职场文书
详解MySQL的Seconds_Behind_Master
2021/05/18 MySQL