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
你是否希望"偏见"基于对称分布?或者也许是指数分布?高斯有人吗?
好吧,以下是从随机文档中提取的所有方法.
首先,三角分布的一个例子:
print random.triangular(0, 1, 0.7)
random.triangular(low, high, mode)
:返回一个随机浮点数
N
,以便low <= N < high
在这些边界之间使用指定的模式.在low
和high
边界默认零和一个.该mode
参数默认为边界之间的中点,给人一种对称分布.
random.betavariate(alpha, beta)
:Beta分发.参数的条件是
alpha > 0
和beta > 0
.返回值介于0
和之间1
.
random.expovariate(lambd)
:指数分布.
lambd
是1.0
由所希望的平均分.它应该是非零的.(该参数将被称为"lambda
",但是这是在Python保留字.)返回值的范围从0
到正无穷大,如果lambd
是正的,和从负无穷大到0
如果lambd
是负的.
random.gammavariate(alpha, beta)
:Gamma分布.(不是伽玛函数!)参数的条件是
alpha > 0
和beta > 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
等于零,该分布减少到超过范围的均匀随机角度0
到2*pi
.
random.paretovariate(alpha)
:帕累托分布.
alpha
是形状参数.
random.weibullvariate(alpha, beta)
威布尔分布.
alpha
是scale参数,beta
是形状参数.