Python模块 随机数random模块的速查与使用

模块介绍

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值