版权声明:Powered by Hibiki Copyright None https://blog.csdn.net/xHibiki/article/details/83998752
模块介绍
Random模块提供各种用于生成伪随机数的函数,以及根据不同的实数分布来随机生成值的函数.虽然这些函数生成的数字好像是完全随机的,但是它们背后的系统是可预测的.如果要求真正随机数用于加密安全等相关功能,应左转模块
os
中的函数urandom
本模块的函数来源于Python3.7.1
1.种子,初始化相关
用于控制基础随机数生成器的状态.
函数 | 描述 |
---|---|
getstate() |
返回表示当前生成器状态的对象.稍后将该对象传递到setstate() 来恢复状态 |
seed([x]) |
初始化随机数生成器.x是(正)整数;如果省略x或x=None,则使用系统时间初始化;如果x非整数,则必须是可散列对象并将hash(x) 作为种子 |
setstate() |
从getstate() 返回的对象中恢复随机数生成的状态 |
2.随机整数相关
用于操作随机整数
函数 | 描述 |
---|---|
getrandbits(k) |
创建包含k个随机位的长整数 |
randint(a,b) |
返回[a,b]中一个随机整数 |
randrange([start],stop,[step]) |
从range(start,stop,step)中随机选择一个数,不包括结束值 |
3.随机序列相关
用于产生随机序列数据
函数 | 描述 |
---|---|
choice(seq) |
从非空序列seq中选取一个元素 |
choices(seq[, weights[,cum]]) |
,使用权重weight和累加权重cum从非空序列seq中选取一个元素,如果两者都未指定,则以相同概率进行选择 |
sample(seq,n) |
从序列seq中随机选择n个值不同的元素 |
shuffle(seq[,random]) |
随机打乱序列seq,random是可选参数,指定随机的生成函数 |
4.实数随机分布
生成实数的随机数.分布和参数名与概率和统计中使用的标准名称一致
函数 | 描述 |
---|---|
betavariate(alpha,beta) |
贝塔分布,alpha>-1,beta>-1,返回值范围(0,1) |
expovariate(labmd) |
指数分布,lambd是由1.0除以预期均值.返回值范围[0,+∞) |
gammavariate(alpha,beta) |
伽玛分布,alpha>-1,beta>0 |
gauss(mu,sigma) |
高斯分布,均值为mu,标准差为sigma |
lognormvariatemu,sigma() |
对数正态分布,对该分布取自然对数得到均值为mu,标准差为sigma的正态分布 |
normalvariate(mu,sigma) |
正态分布,均值为mu,标准差为sigma |
paretovariate(alpha) |
Pareto分布,形状参数为alpha |
random() |
返回[0.0,1.0)中一个随机实数 |
uniform(a,b) |
返回[a,b]中一个随机实数 |
triangular([low [,high [,mode]]]) |
三角分布.随机数范围[low,high),模式为mode.默认low=0,high=1.0 ,mode设置为low和high的中点值 |
vonmisesvariate(mu,kappa) |
von Mises分布,mu是平均角,弧度范围在0~2*pi,kappa是非负集中因子.如果kappa=0,则该分布简化为统一随机角,范围在0~2*pi |
weibullvariate(alpha,beta) |
Weibull分布,比例参数为alpha,形状参数为beta. |
注意
1.该模块中的函数都不是线程安全的.如果在不同线程中生成随机数,就应当使用锁定以防止并发访问.
2.该模块生成的随机数都是确定的,不应用于摩玛
3.随机数生成的区间(在数值开始重复之前)是219937-1