计算实例:
公示图:
通过编程实现 上述过程:
from fractions import Fraction
#先验概率的定义:
def xianyangailv(y):
#如果是男性,就return男性的概率
if y==1:
return Fraction(2,3)
#如果是女性,就return女性的概率
if y==0:
return Fraction(1,3)
#条件概率的定义:
def tiaojiangailv(x,y):
#如果ta是男性并且穿凉鞋,那么就return在男性条件下穿凉鞋的概率。
if y==1 and x==1:
return Fraction(1,2)
#如果ta是女性且穿凉鞋,那么就return在女性条件下穿凉鞋的概率。
if y==0 and x==1:
return Fraction(2,3)
#全概率公式的定义:
def quangailv(x):
#不考虑性别的情况下,若x==0,return不穿拖鞋的概率。
if x==0:
return Fraction(4,9)
if x==1:
return Fraction(5,9)
#贝叶斯公式的定义:
def beiyesi(x,y):
#若求的是在已知一个人穿拖鞋的情况下,ta是男性或女性的概率各是多少。
if x==1 and y==1:
return tiaojiangailv(1,1)*xianyangailv(1)/quangailv(1)
if x==1 and y==0:
return tiaojiangailv(1,0)*xianyangailv(0)/quangailv(1)
if __name__ == '__main__':
print(beiyesi(1,1))
print(beiyesi(1,0))
运行结果: