6.6 random--伪随机数的生成
本模块提供了生成要求安全度不高的随机数。假设须要更高安全的随机数产生。须要使用os.urandom()或者SystmeRandom模块。
random.seed(a=None, version=2)
初始化随机数据的种子数值。假设a是None值,会取採用当前系统时间作为种子值。假设a是一个int类型的值。则会直接使用。參数version是版本号兼容,假设为版本号2时,对于str。bytes。bytearray採用int类型返回;在版本号1时,採用hash()返回。
样例:
#python 3.4
from random import *
r = seed()
print(r)
r = random()
print(r)
r = random()
print(r)
结果输出例如以下:
None
0.25563594631743225
0.8596359931999921
random.getstate()
获取当前随机数的环境状态,以便下次再使用。
样例:
#python 3.4
from random import *
r = seed()
print(r)
r = getstate()
print(r)
结果输出例如以下:
None
(3, (2147483648, 1806585935, 2218797231, 963762379, 2448530300, 4223961651, 2167919184, 3727107355, 2403035413,
...
1296424577, 1100183651, 306611027, 444923926, 1168100930, 624), None)
random.setstate(state)
恢复上一次获取的状态,上次的状态使用getstate()来获取。
样例:
#python 3.4
from random import *
r = seed()
print(r)
r = getstate()
print(random())
setstate(r)
print(random())
结果输出例如以下:
None
0.38424833141530745
0.38424833141530745
random.getrandbits(k)
返回指定k位数的随机整数值。
样例:
#python 3.4
from random import *
r = seed()
r = getrandbits(4)
print(r)
r = getrandbits(4)
print(r)
结果输出例如以下:
4
9
random.randrange(stop)
random.randrange(start, stop[, step])
返回一个指定范围内的随机值。stop是最大值的整数边界。start是起始值。step是每一个值之间的间隔。返回的值大于等于start,小于stop。
样例:
#python 3.4
from random import *
r = seed()
r = randrange(5)
print(r)
r = randrange(0, 10, 2)
print(r)
结果输出例如以下:
2
8
random.randint(a, b)
返回一个整数,它的范围是a <= N <=b。
样例:
#python 3.4
from random import *
r = seed()
r = randint(1, 2)
print(r)
r = randint(1, 2)
print(r)
结果输出例如以下:
2
1
random.choice(seq)
从一个非空的序列里返回一个元素,假设为空的序列就抛出异常InexError。
样例:
#python 3.4
from random import *
r = seed()
r = choice(['a', 'b', 'c'])
print(r)
r = choice(['a', 'b', 'c'])
print(r)
结果输出例如以下:
c
a
random.shuffle(x[, random])
对序列x进行随机移动元素的位置。
可选參数random是一个返回随机浮点数[0.0, 1.0)之间的函数。
样例:
#python 3.4
from random import *
r = seed()
l = ['a', 'b', 'c', 'd']
print(l)
r = shuffle(l)
print(r, l)
结果输出例如以下:
['a', 'b', 'c', 'd']
None ['b', 'd', 'a', 'c']
random.sample(population, k)
从序列population里随机地返回k个元素的序列。
样例:
#python 3.4
from random import *
r = seed()
l = ['a', 'b', 'c', 'd']
print(l)
r = sample(l, 3)
print(r)
结果输出例如以下:
['a', 'b', 'c', 'd']
['c', 'a', 'b']
random.random()
返回范围在[0.0, 1.0)之间的随机浮点数。
样例:
#python 3.4
from random import *
r = seed()
r = random()
print(r)
结果输出例如以下:
0.3916060348292988
random.uniform(a, b)
在a和b区间返回一个随机浮点数。假设a <= b则返回 a <= N <= b。假设 b < a则返回b <= N <= a。
样例:
#python 3.4
from random import *
r = seed()
r = uniform(1.0, 2.5)
print(r)
r = uniform(8.0, 2.5)
print(r)
结果输出例如以下:
1.6498941793878243
4.22188785768826
random.triangular(low, high, mode)
返回三角形分布的随机数, low <= N <= high。參数mode指明众数出现位置。
样例:
#python 3.4
from random import *
r = seed()
r = triangular(-3, 8, 0.8)
print(r)
r = triangular(-3, 8, 10)
print(r)
结果输出例如以下:
1.5058316902823226
0.27606363975774073
random.betavariate(alpha, beta)
返回 beta分布的随机数,參数alpha是大于0的值,參数beta是大于0的值。返回值的区间在0和1之间。
样例:
#python 3.4
from random import *
r = seed()
r = betavariate(1, 2)
print(r)
r = betavariate(1, 2)
print(r)
结果输出例如以下:
0.11852634010531515
0.029427309916706654
random.expovariate(lambd)
返回指数分布的随机数。
參数lambd是正值。刚从0到正无限大的值。參数lambd是负值。则返回负无穷大到0的值。
样例:
#python 3.4
from random import *
r = seed()
r = expovariate(1)
print(r)
r = expovariate(-3)
print(r)
结果输出例如以下:
0.2003044059401706
-0.1785055187658876
random.gammavariate(alpha, beta)
伽玛分布的随机数。
x ** (alpha - 1) * math.exp(-x / beta)
pdf(x) = --------------------------------------
math.gamma(alpha) * beta ** alpha
样例:
#python 3.4
from random import *
r = seed()
r = gammavariate(1, 2)
print(r)
r = gammavariate(1, 2)
print(r)
结果输出例如以下:
0.5413328891492575
4.139239480698503
random.gauss(mu, sigma)
返回高斯分布的随机数。
參数mu是一个平均数,sigma是绝对偏差。
样例:
#python 3.4
from random import *
r = seed()
r = gauss(1, 2)
print(r)
r = gauss(1, 2)
print(r)
结果输出例如以下:
2.8846358328647543
-0.7848726717436769
random.lognormvariate(mu, sigma)
对数分布的随机数。mu是一个平均数,sigma是一个绝对偏差。
样例:
#python 3.4
from random import *
r = seed()
r = lognormvariate(1, 2)
print(r)
r = lognormvariate(1, 2)
print(r)
结果输出例如以下:
3.4904102483152704
1.7560462679767879
random.normalvariate(mu, sigma)
正态分布的随机数。參数mu是一个平均数。sigma是标准方差。
样例:
#python 3.4
from random import *
r = seed()
r = normalvariate(1, 2)
print(r)
r = normalvariate(1, 2)
print(r)
结果输出例如以下:
1.7317832780485172
2.1163922446170247
random.vonmisesvariate(mu, kappa)
返回冯米塞斯分布的随机数。參数mu是平均角度,使用弧度表示,范围在0到2*pi之间。
參数kappa是集中程度參数。是一个大于等于0的值。
样例:
#python 3.4
from random import *
r = seed()
r = vonmisesvariate(1, 2)
print(r)
r = vonmisesvariate(1, 2)
print(r)
结果输出例如以下:
0.9831582967095295
2.3340486646429404
random.paretovariate(alpha)
返回帕累托分布的随机数。參数alpha是一个模型參数。
样例:
#python 3.4
from random import *
r = seed()
r = paretovariate(2)
print(r)
r = paretovariate(2)
print(r)
结果输出例如以下:
1.1031942255648155
2.3128974772541597
random.weibullvariate(alpha, beta)
返回韦伯分布的随机数。參数alpha是缩放系统,參数beta是模型參数。
样例:
#python 3.4
from random import *
r = seed()
r = weibullvariate(2, 1)
print(r)
r = weibullvariate(2, 1)
print(r)
结果输出例如以下:
1.1790484913990984
5.519287151687428
class random.SystemRandom([seed])
使用操作系统底层产生随机数,可是不是全部系统平台都是可用的。
样例:
#python 3.4
from random import *
r = SystemRandom()
print(r)
print(r.random())
结果输出例如以下:
<random.SystemRandom object at 0x03180070>
0.466491601955791
蔡军生 QQ:9073204 深圳
6.6 random--伪随机数的生成的更多相关文章
- random——伪随机数生成模块
random——伪随机数生成模块 转自:https://blog.csdn.net/zhtysw/article/details/79978197 该模块包含构造伪随机数生成器的多个方法.对于整数,伪 ...
- C语言伪随机数的生成
在stdlib.h中,有两个函数与伪随机数的生成有关:srand和rand.C语言中,随机数表有很多列,srand函数是根据其参数(unsigned类型)来获得一个种子(seed),根据种子来设置从哪 ...
- 【转载】C#使用Random类来生成指定范围内的随机数
C#的程序应用的开发中,可以使用Random随机数类的对象来生成相应的随机数,通过Random随机数对象生成随机数的时候,支持设置随机数的最小值和最大值,例如可以指定生成1到1000范围内的随机数.R ...
- numpy伪随机数的生成
numpy伪随机数的生成 normal函数 可以用normal来得到一个标准正态分布的4×4样本数组 >>> import numpy as np >>> samp ...
- python的random模块(生成验证码)
python的random模块(生成验证码) random模块常用方法 random.random() #生成0到1之间的随机数,没有参数,float类型 random.randint(1, 3) # ...
- 生成随机数的几种方法、Math.random()随机数的生成、Random()的使用
第一种方法使用:System.currentTimeMillis(); final long l = System.currentTimeMillis(); final int rs = (int) ...
- Java利用Math.random()方法随机生成A-Z的字符
package reverse; import java.text.DecimalFormat; public class Reverse { public static void main(Stri ...
- random模块,生成随机数
1.random.choice(sep) 从一个序列中随机选取一个元素返回 >>> list1=["a",1,2,3,"b"] >> ...
- js中Math.random()生成指定范围数值的随机数
http://www.111cn.net/wy/js-ajax/57062.htm Math.random() 这个方法相信大家都知道,是用来生成随机数的.不过一般的参考手册时却没有说明如何用这个方法 ...
- [转载]C# Random 生成不重复随机数
Random 类 命名空间:System 表示伪随机数生成器,一种能够产生满足某些随机性统计要求的数字序列的设备. 伪随机数是以相同的概率从一组有限的数字中选取的.所选数字并不具有完全的随机性,因为它 ...
随机推荐
- apache启动失败提示预期<IfModule>结果<IfModule>>
经过反复查看httpd.conf文件,发现原因是启动了两遍<IfModule>,也就是出现内容重复标签重复曾经遇到类似的情况Apache2: Expected </> but ...
- Android五大布局介绍&属性设置大全
前言 在进行Android开发中,常常需要用到各种布局来进行UI的绘制,今天我们就来讲下Android开发中最常用的五大布局介绍和相关属性的设置. 目录 Android五大布局介绍&属性设置. ...
- Vue课程思维导图
- 梦想CAD控件网页版标注样式
增加标注样式 _DMxDrawX::AddDimStyle 增加一个新的标注样式,如果当前已经有指定名的标注样式,就直接失败返回.详细说明如下: 参数 说明 BSTR pszName 新增加的标注样式 ...
- JavaScript中的方法
JavaScript中的方法 在JavaScript中,可以通过对象来调用对应的方法.在JavaScript中,有三个重要的window对象方法:用于显示警告信息的alert.用于显示确认信息的con ...
- 洛谷P1107 & BZOJ1270 [BJWC2008]雷涛的小猫
一道DP. 给你一个矩阵里面有很多数,你需要从上往下找到一种跳跃方法使得经过的点的价值之和最大. 具体题面见链接 洛谷P1107 BZOJ1270 很明显是一个二维的DP. #include<b ...
- 剑指offer---以O(1)时间删除链表节点
问题:删除链表节点 要求:以O(1)时间 对于删除指定索引的链表元素大家都很熟悉,思路一般是从头遍历链表直到指定索引位置删除元素,然后维护一下指针即可,时间复杂度O(n).代码如下: // 删除pos ...
- ConcurrentHashMap笔记
概览: 内部存储的数据结构为:数组+链表+红黑树,图示: 重要的属性(内部类): //存放元素的数组 transient volatile Node<K,V>[] table; //数组中 ...
- ACM多校联赛7 2018 Multi-University Training Contest 7 1009 Tree
[题意概述] 给一棵以1为根的树,树上的每个节点有一个ai值,代表它可以传送到自己的ai倍祖先,如果不存在则传送出这棵树.现在询问某个节点传送出这棵树需要多少步. [题解] 其实是把“弹飞绵羊”那道题 ...
- 洛谷 2173 BZOJ 2816 [ZJOI2012]网络
[题解] 明显的LCT模板题,c种颜色就开c棵LCT好了.. #include<cstdio> #include<algorithm> #define N 100010 #de ...