超几何分布python代码实现

超几何分布属于离散型随机变量的概率分布问题,随机变量可以取有限个值,在每取一个值时可以求出一个概率,此时求解的方法就是采用古典概型公式。

产品抽样检查中经常遇到一类实际问题,假定在N件产品中有M件不合格品,即不合格率  。

在产品中随机抽n件做检查,发现k件不合格品的概率为   ,k=0,1,2,...,min{n,M}。

相关推荐:《Python基础教程》

亦可写作    

(与上式不同的是M可为任意实数,而C表示的组合数M为非负整数)

  为古典概型的组合形式,a为下限,b为上限,此时我们称随机变量X服从超几何分布(hypergeometric distribution)。

需要注意的是:

(1)超几何分布的模型是不放回抽样。

(2)超几何分布中的参数是M,N,n,上述超几何分布记作X~H(n,N,M)。

python实例代码:

import numpy as np
import matplotlib.pyplot as plt
# 超几何分布 hypergeometric(ngood, nbad, nsample, size=None) 好的总数、坏的总数、每次采样数、试验次数
# np.random.hypergeometric(10,20,5,size=4)
# 在一个口袋中装有30个球,其中有10个红球,其余为白球,这些球除颜色外完全相同。游戏者一次从中摸出5个球。
摸到至少4个红球就中一等奖,那么获一等奖的概率是多少?
s = np.random.hypergeometric(10,20,5,size=1000000)
p = sum(s>=4)/1000000.
print(p)
fig = plt.figure(figsize=(8,6))
a1 = fig.add_subplot(2,2,1)
a1.hist(s ,bins=20,color='k',alpha=0.3)
plt.show()

来源:PY学习网:原文地址:https://www.py.cn/article.html