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的垃圾回收机制深入分析
Jul 16 Python
python判断字符串是否是json格式方法分享
Nov 07 Python
Python自定义简单图轴简单实例
Jan 08 Python
浅谈Python traceback的优雅处理
Aug 31 Python
详解Python3之数据指纹MD5校验与对比
Jun 11 Python
通过python实现随机交换礼物程序详解
Jul 10 Python
将python2.7添加进64位系统的注册表方式
Nov 20 Python
Python yield生成器和return对比代码实例
Apr 20 Python
Python基于jieba, wordcloud库生成中文词云
May 13 Python
Python生成器传参数及返回值原理解析
Jul 22 Python
五分钟学会怎么用python做一个简单的贪吃蛇
Jan 12 Python
python re模块常见用法例举
Mar 01 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中提问频率最高的11个面试题和答案
2014/09/02 PHP
php中解析带中文字符的url函数分享
2015/01/20 PHP
PHP书写格式详解(必看)
2016/05/23 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
PHP 访问数据库配置通用方法(json)
2018/05/20 PHP
PHP的mysqli_set_charset()函数讲解
2019/01/23 PHP
jquery实现固定顶部导航效果(仿蘑菇街)
2013/03/21 Javascript
JavaScript数组迭代器实例分析
2015/06/09 Javascript
chrome调试javascript详解
2015/10/21 Javascript
AngularJS手动表单验证
2016/02/01 Javascript
解析Node.js基于模块和包的代码部署方式
2016/02/16 Javascript
javascript随机抽取0-100之间不重复的10个数
2016/02/25 Javascript
Javascript设计模式之装饰者模式详解篇
2017/01/17 Javascript
详解如何在NodeJS项目中优雅的使用ES6
2017/04/22 NodeJs
微信小程序-滚动消息通知的实例代码
2017/08/03 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
JS中使用new Option()实现时间联动效果
2018/12/10 Javascript
解决使用layui的时候form表单中的select等不能渲染的问题
2019/09/18 Javascript
解决pycharm双击但是无法打开的情况
2020/10/31 Javascript
[36:05]DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs Optic
2018/04/01 DOTA
python读取图片并修改格式与大小的方法
2018/07/24 Python
python os.path模块常用方法实例详解
2018/09/16 Python
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
Python检查ping终端的方法
2019/01/26 Python
如何用tempfile库创建python进程中的临时文件
2021/01/28 Python
美国大型的健身社区和补充商店:Bodybuilding.com
2016/09/06 全球购物
KLOOK客路:发现更好玩的世界,预订独一无二的旅行体验
2016/12/16 全球购物
北京某公司的.net笔试题
2014/03/20 面试题
自学考试自我鉴定范文
2013/09/26 职场文书
保护环境建议书100字
2014/05/13 职场文书
学校就业推荐信范文
2014/05/19 职场文书
毕业生代领毕业材料的授权委托书
2014/09/29 职场文书
同意报考公务员证明
2015/06/17 职场文书
多表查询、事务、DCL
2021/04/05 MySQL
sql server 累计求和实现代码
2022/02/28 SQL Server
Golang流模式之grpc的四种数据流
2022/04/13 Golang