A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 易大帅 高级黑马   /  2017-3-18 08:00  /  2115 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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)
                                                       
                                                                               

4 个回复

倒序浏览
兄弟。你是学python的嘛?可以交流下。我刚学完基础
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
starhub 发表于 2017-3-20 08:27
兄弟。你是学python的嘛?可以交流下。我刚学完基础

恩自学吧,可以啊随时欢迎!
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
回复 使用道具 举报
starhub 发表于 2017-3-20 09:00
你也是自学吗?

自学加实践!
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马