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 文件和路径操作函数小结
Nov 23 Python
在Python的Django框架上部署ORM库的教程
Apr 20 Python
Python实现遍历数据库并获取key的值
May 17 Python
Python的Twisted框架上手前所必须了解的异步编程思想
May 25 Python
pandas series序列转化为星期几的实例
Apr 11 Python
python 机器学习之支持向量机非线性回归SVR模型
Jun 26 Python
Python 经典算法100及解析(小结)
Sep 13 Python
Python实现投影法分割图像示例(一)
Jan 17 Python
Python自动创建Excel并获取内容
Sep 16 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
Jan 07 Python
python process模块的使用简介
May 14 Python
Python 线程池模块之多线程操作代码
May 20 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 通过Socket收发十六进制数据的实现代码
2013/08/16 PHP
jquery+thinkphp实现跨域抓取数据的方法
2016/10/15 PHP
PHP双向链表定义与用法示例
2018/01/31 PHP
让textarea控件的滚动条怎是位与最下方
2007/04/20 Javascript
javascript实现 在光标处插入指定内容
2007/05/25 Javascript
不要在cookie中使用特殊字符的原因分析
2010/07/13 Javascript
统计出现最多的字符次数的js代码
2010/12/03 Javascript
简单的两种Extjs formpanel加载数据的方式
2013/11/09 Javascript
浅谈Sizzle的“编译原理”
2015/04/14 Javascript
JS实现兼容各浏览器解析XML文档数据的方法
2015/06/01 Javascript
js简单实现表单中点击按钮动态增加输入框数量的方法
2015/08/18 Javascript
jQuery插件实现文件上传功能(支持拖拽)
2020/08/27 Javascript
精彩的Bootstrap案例分享 重点在注释!(选项卡、栅格布局)
2016/07/01 Javascript
详解js静态资源文件请求的处理
2017/08/01 Javascript
JavaScript实现开关等效果
2017/09/08 Javascript
echarts实现词云自定义形状的示例代码
2019/02/20 Javascript
利用Node.js如何实现文件循环覆写
2019/04/05 Javascript
Python内置函数bin() oct()等实现进制转换
2012/12/30 Python
python xlsxwriter创建excel图表的方法
2018/06/11 Python
在python中利用KNN实现对iris进行分类的方法
2018/12/11 Python
Python3.5字符串常用操作实例详解
2019/05/01 Python
Django基础知识 web框架的本质详解
2019/07/18 Python
django多个APP的urls设置方法(views重复问题解决)
2019/07/19 Python
django创建css文件夹的具体方法
2020/07/31 Python
用python计算文件的MD5值
2020/12/23 Python
尼克松手表官网:Nixon手表
2019/03/17 全球购物
Oral-B荷兰:牙医最推荐的品牌
2020/02/25 全球购物
公务员保密承诺书
2014/03/27 职场文书
乡镇党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
少先队辅导员事迹材料
2014/12/24 职场文书
城管个人总结
2015/02/28 职场文书
早安问候语大全
2015/11/10 职场文书
十大公认最好看的动漫:《咒术回战》在榜,《钢之炼金术师》第一
2022/03/18 日漫
Python集合set()使用的方法详解
2022/03/18 Python
Python+Pillow+Pytesseract实现验证码识别
2022/05/11 Python
详解Spring Bean的配置方式与实例化
2022/06/10 Java/Android