Python 产生两个方法将不被所述多个随机数的特定范围内反复
在最近的实验中进行。通过随机切割一定比例所需要的数据这两个部分。事实上这个问题的核心是生成随机数的问题将不再重复。递归方法,首先想到的,然后我们发现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 产生两个方法将不被所述多个随机数的特定范围内反复的更多相关文章
- python中两种方法实现二分法查找,细致分析二分法查找算法
之前分析了好多排序算法,可难理解了呢!!(泣不成声)这次我要把二分查找总结一下,这个算法不算难度特别大,欢迎大家参考借鉴我不喜欢太官方的定义,太晦涩的语言,让人看了就头晕.我希望加入我自己的理解,能帮 ...
- 牛客网:将两个单调递增的链表合并为一个单调递增的链表-Python实现-两种方法讲解
方法一和方法二的执行效率,可以大致的计算时间复杂度加以对比,方法一优于方法二 1. 方法一: 思路: 1. 新创建一个链表节点头,假设这里就叫 head3: 2. 因为另外两个链表都为单调递增,所 ...
- Python学习--两种方法爬取网页图片(requests/urllib)
实际上,简单的图片爬虫就三个步骤: 获取网页代码 使用正则表达式,寻找图片链接 下载图片链接资源到电脑 下面以博客园为例子,不同的网站可能需要更改正则表达式形式. requests版本: import ...
- 实现LRU的两种方法---python实现
这也是豆瓣2016年的一道笔试题... 参考:http://www.3lian.com/edu/2015/06-25/224322.html LRU(least recently used)就不做过多 ...
- 转:python list排序的两种方法及实例讲解
对List进行排序,Python提供了两个方法 方法1.用List的内建函数list.sort进行排序 list.sort(func=None, key=None, reverse=False) Py ...
- python list排序的两种方法及实例讲解
对List进行排序,Python提供了两个方法方法1 用List的内建函数list sort进行排序list sort(func=None, key=None, reverse=False)Pytho ...
- 「python」: arp脚本的两种方法
「python」: arp脚本的两种方法 第一种是使用arping工具: #!/usr/bin/env python import subprocess import sys import re de ...
- Python 中格式化字符串 % 和 format 两种方法之间的区别
Python2.6引入了 format 格式化字符串的方法,现在格式化字符串有两种方法,就是 % 和 format ,具体这两种方法有什么区别呢?请看以下解析. # 定义一个坐标值 c = (250, ...
- python将两个数组合并成一个数组的两种方法的代码
内容过程中,把写内容过程中常用的内容收藏起来,下面的资料是关于python将两个数组合并成一个数组的两种方法的内容,希望能对小伙伴们有帮助. c1 = ["Red","G ...
随机推荐
- UVA - 1161 Objective: Berlin(最大流+时序模型)
题目大意:有n个城市m条航线.给出每条航线的出发地,目的地,座位数,起飞时间和到达时间(所给形式为HHMM.记得转化),再给出城市A和B.和到达城市B的最晚时间.如今问一天内最多有多少人能从A飞到B, ...
- zeros() 函数——MATLAB
zeros函数——生成零矩阵 ones函数——生成全1阵 [zeros的使用方法] B=zeros(n):生成n×n全零阵. B=zeros(m,n):生成m×n全零阵. B=zeros([m n]) ...
- POJ 2546 Circular Area 几何
http://poj.org/problem?id=2546 晚上发现鼠标快不行了了!!!鼠标你肿么了,肿么突然就按键不灵了,哭,谁送我一只呀,奖励我舍友一只.哈哈.开玩笑滴~ 舍友大怒说" ...
- Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)
Crazy Bobo Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) Tota ...
- POJ 1775 Sum of Factorials (ZOJ 2358)
http://poj.org/problem?id=1775 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1334 题目大意: ...
- ios开发runtime学习四:动态添加属性
#import "ViewController.h" #import "Person.h" #import "NSObject+Property.h& ...
- 微信测试号开发之四 获取access_token和jsapi_ticket
原文:https://blog.csdn.net/qq_37936542/article/details/78549233 access_token:公众号的全局唯一接口调用凭据,公众号调用各接口时都 ...
- <LeetCode OJ> 62. / 63. Unique Paths(I / II)
62. Unique Paths My Submissions Question Total Accepted: 75227 Total Submissions: 214539 Difficulty: ...
- html5 Canvas和SVG的区别是什么(总结)
html5 Canvas和SVG的区别是什么(总结) 一.总结 一句话总结:都是2D做图,svg是矢量图,canvas是位图.Canvas 是逐像素进行渲染的,适合游戏. 1.svg的全称是什么? S ...
- js中动态创建json,动态为json添加属性、属性值的实例
如下所示: ? 1 2 3 4 5 6 7 var param = {}; for(var i=0;i<fields.length;i++){ var field = fields[i]; ...