.
假设有两个各装了100个球的箱子,甲箱子中有70个红球,30个绿球,乙箱子中有30个红球,70个绿球。假设随机选择其中一个箱子,从中拿出一个球记下球色再放回原箱子,如此重复12次,记录得到8次红球,4次绿球。问题来了,你认为被选择的箱子是甲箱子的概率有多大?
直接用套用贝叶斯公式来计算。但必须定义清楚 A事件,B事件。
在这个题目中,令事件B为选择甲箱子,令事件A为得到8红4绿。
则 即为题目所求:在得到8红4绿的情况下,选择的箱子是甲箱子的概率?
.
根据贝叶斯公式:
先来看下选择甲箱子的情况下,得到8红4绿的概率为 :
选择甲箱子的概率为 :
得到8红4绿的概率为。可以分为两种情况来算,一是当选择甲箱子的情况,另一种情况是当选择乙箱子的情况,则:
.
综合以上,最后根据贝叶斯公式算得:
.
用代码实现:
from scipy.special import perm, comb
c = comb(12,8)
P_AB=c*pow(0.7,8)*pow(0.3,4)
print("P(A|B)=",P_AB)
P_B=0.5
print("P(B)=",P_B)
P_A=0.5*c*(pow(0.7,8)*pow(0.3,4)+pow(0.7,4)*pow(0.3,8))
print("P(A)=",P_A)
P_BA = P_AB*P_B/P_A
print("选择的箱子是甲箱子的概率是:P(B|A)={0:.2%}".format(P_BA))
P(A|B)= 0.2311
P(B)= 0.5
P(A)= 0.1194
选择的箱子是甲箱子的概率是:P(B|A)= 96.74%