当前位置:  开发笔记 > 编程语言 > 正文

如何在python中模拟偏置硬币的翻转?

如何解决《如何在python中模拟偏置硬币的翻转?》经验,为你挑选了2个好方法。



1> Federico A. ..:

random.random()返回[0,1]范围内均匀分布的伪随机浮点数.该数字小于p[0,1]范围内的给定数字且具有概率p.从而:

def flip(p):
    return 'H' if random.random() < p else 'T'

一些实验:

>>> N = 100
>>> flips = [flip(0.2) for i in xrange(N)]
>>> float(flips.count('H'))/N
0.17999999999999999  # Approximately 20% of the coins are heads

>>> N = 10000
>>> flips = [flip(0.2) for i in xrange(N)]
>>> float(flips.count('H'))/N
0.20549999999999999  # Better approximation 



2> nosklo..:

你是否希望"偏见"基于对称分布?或者也许是指数分布?高斯有人吗?

好吧,以下是从随机文档中提取的所有方法.

首先,三角分布的一个例子:

print random.triangular(0, 1, 0.7)

random.triangular(low, high, mode):

返回一个随机浮点数N,以便low <= N < high在这些边界之间使用指定的模式.在lowhigh边界默认一个.该mode 参数默认为边界之间的中点,给人一种对称分布.

random.betavariate(alpha, beta):

Beta分发.参数的条件是alpha > 0beta > 0.返回值介于0和之间1.

random.expovariate(lambd):

指数分布.lambd1.0 由所希望的平均分.它应该是非零的.(该参数将被称为" lambda",但是这是在Python保留字.)返回值的范围从0正无穷大,如果lambd是正的,和从负无穷大0如果lambd 是负的.

random.gammavariate(alpha, beta):

Gamma分布.(不是伽玛函数!)参数的条件是alpha > 0beta > 0.

random.gauss(mu, sigma):

高斯分布.mu是平均值,sigma是标准偏差.这比normalvariate()下面定义的函数略快.

random.lognormvariate(mu, sigma):

记录正态分布.如果采用此分布的自然对数,您将获得具有均值mu和标准差的正态分布sigma.mu可以有任何值,并且sigma必须大于 .

random.normalvariate(mu, sigma):

正态分布.mu是平均值,sigma是标准偏差.

random.vonmisesvariate(mu, kappa):

mu是平均角度,以0和之间的弧度表示2*pi,并且kappa 是浓度参数,必须大于或等于零.如果kappa等于,该分布减少到超过范围的均匀随机角度02*pi.

random.paretovariate(alpha):

帕累托分布.alpha是形状参数.

random.weibullvariate(alpha, beta)

威布尔分布.alpha是scale参数,beta是形状参数.

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有