Python Random模块

有的时候我们需要在写程序的时候用到随机数生成,在python中有内置模块random可以帮助我们,此外科学计算包numpy中也有random模块实现这一功能。今天,我们介绍一下python内置random模块在这一方面提供了哪些函数。

该模块的函数实际上是random.Random类的隐藏实例random的方法。

 

产生随机数字

 

random.random()

         随机返回[0.0,1.0)之间浮点数。


random.uniform(a, b)

         随机返回浮点数N,如果a<=b,则a<=N<=b,反之则b<=N<=a。使用公式min +(max - min) * random()计算返回值N。


randint(a, b)

         随机返回[a,b]之间整数。

randrange(start, stop, step)

         随机从range(start,stop, step)产生的序列中挑选一个元素返回。

 

随机挑选元素

 

choice(seq)

         随机从非空序列seq挑选一个元素返回,若seq为空,则抛出IndexError。

 

随机排列

 

suffle(x[, random])

         随机打乱序列x中各元素的排列位置。可选参数random是一个无参函数,返回[0.0, 1.0)之前随机浮点数。random参数默认为内置random()函数。

         下面模拟一个洗牌过程:

sample(population, k)

         随机从集合population中挑选k个”不同”(unique)元素组成一个序列返回。但如果population中本身存在重复元素,则返回的序列中也可能有重复元素。

Seeding

 

random.seed([x])

         seed()函数用于初始化伪随机数生成器。参数x为任何可哈希(hashable)对象。如果x为缺省值或None,则使用系统时间进行初始化。

 

保存状态

 

getstate()

         返回当前伪随机数产生器的状态对象。此状态对象可被传入setstate()方法来恢复到当前状态。

setstate(state)

         恢复到getstate()被调用时的状态。

         getstate()和setstate()函数常被一起使用,来控制多个同步运行伪随机数产生器的运行状态。下面为实例:

         第一次执行结果:

         第二次执行结果:


多个同步生成器

 

jumpahead(n)

         使伪随机数产生器从当前运行状态发生变化,参数n是一个非负整数,用于搅乱当前的状态变量。不同于getstate()和setstate()函数常常用于将所有产生器实例同步到同一状态,jumpahead()用于使产生器们的状态互相远离。

下面为实例:

 

系统随机生成器

 

SystemRadom()

         使用操作系统的os.urandom()函数来产生随机数,不是所有操作系统都支持。相应的,seed()和jumpahead()函数不再起作用,而getstate()和setstate()函数则会抛出NotImplementedError异常。

 

非均匀分布

 

random.normalvariate(mu, sigma)

 

random.lognormvariate(mu, sigma)

 

random.expovariate(lambd)

 

random. paretovariate(alpha)

 

random. weibullvariate(alpha, beta)

 

random.gauss(mu, sigma)

 

random. vonmisesvariate()

 

random. gammavariate(alpha, beta)

 

random. betavariate(alpha, beta)

 

random.triangular(low, high, mode)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值