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网络编程学习笔记(九):数据库客户端 DB-API
Jun 09 Python
利用QT写一个极简单的图形化Python闹钟程序
Apr 07 Python
Python中time模块与datetime模块在使用中的不同之处
Nov 24 Python
你真的了解Python的random模块吗?
Dec 12 Python
解决pycharm界面不能显示中文的问题
May 23 Python
使用PyQt4 设置TextEdit背景的方法
Jun 14 Python
python移位运算的实现
Jul 15 Python
Python搭建代理IP池实现存储IP的方法
Oct 27 Python
Django如何使用redis作为缓存
May 21 Python
Python类及获取对象属性方法解析
Jun 15 Python
如何利用pycharm进行代码更新比较
Nov 04 Python
解决Python字典查找报Keyerror的问题
May 26 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
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
2007/09/02 PHP
在同一窗体中使用PHP来处理多个提交任务
2008/05/08 PHP
用mysql内存表来代替php session的类
2009/02/01 PHP
php 缩略图实现函数代码
2011/06/23 PHP
PHP采集类Snoopy抓取图片实例
2014/06/19 PHP
Packer 3.0 JS压缩及混淆工具 下载
2007/05/03 Javascript
jquery radio 操作代码
2011/03/16 Javascript
JQUERY实现左侧TIPS滑进滑出效果示例
2013/06/27 Javascript
js原生appendChild的bug解决心得分享
2013/07/01 Javascript
js 判断图片是否加载完以及实现图片的预下载
2014/08/14 Javascript
Node.js安装教程和NPM包管理器使用详解
2014/08/16 Javascript
get(0).tagName获得作用标签示例代码
2014/10/08 Javascript
JavaScript实现网站访问次数统计代码
2015/08/12 Javascript
JavaScript页面实时显示当前时间实例代码
2016/10/23 Javascript
js复制内容到剪贴板代码,js复制代码的简单实例
2016/10/27 Javascript
详解js删除数组中的指定元素
2018/10/31 Javascript
关于vue项目中搜索节流的实现代码
2019/09/17 Javascript
TypeScript高级用法的知识点汇总
2019/12/17 Javascript
js生成1到100的随机数最简单的实现方法
2020/02/07 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
2020/03/04 Javascript
原生JS运动实现轮播图
2021/01/02 Javascript
[00:32]2018DOTA2亚洲邀请赛iG出场
2018/04/03 DOTA
Python中Iterator迭代器的使用杂谈
2016/06/20 Python
python实现堆和索引堆的代码示例
2018/03/19 Python
提升Python效率之使用循环机制代替递归函数
2019/07/23 Python
django-初始配置(纯手写)详解
2019/07/30 Python
Python操作SQLite/MySQL/LMDB数据库的方法
2019/11/07 Python
用HTML5 Canvas API中的clearRect()方法实现橡皮擦功能
2016/03/15 HTML / CSS
捷克汽车配件和工具销售网站:TorriaCars
2018/02/26 全球购物
EQVVS官网:设计师男装和女装
2018/10/24 全球购物
介绍一下ICMP(Internet Control Message Protocol)Internet控制信息协议
2016/11/26 面试题
职称自我鉴定
2013/10/15 职场文书
优秀的2014年两会精神解读
2014/03/17 职场文书
反邪教警示教育方案
2014/05/13 职场文书
MYSQL如何查看进程和kill进程
2022/03/13 MySQL
LyScript实现绕过反调试保护的示例详解
2022/08/14 Python