超几何分布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