python概率_Python中几道有趣的概率题

昨晚睡觉前刷朋友圈,看到有朋友转了一篇叫做《和上帝一起掷骰子》的文章

举两个例子:

若1千人中有1人携带hiv病毒,有一种可以百分之百检测出病毒携带者的检查。但这种检查对于没有携带的人,有5%的可能性误检出是携带者。现在随便找了一个人,检查后呈阳性,也是就携带者。那么他真的是携带者的可能性是多大?

这里,我们不考虑各种其他条件。看上去5%误检率是很低的。但其实,这人真正携带hiv的概率只有1.96%。

1/(999×5%+1)

另一个例子:一辆出租车在雨夜肇事,一个目击证人说,车是蓝色的。已知:目击证人在当时场景下正确记忆并区分蓝绿色的准确率是80%,而该地85%的出租车是绿色,15%是蓝色。那么那辆车是蓝色的概率有多大?

按理说,眼见为实,八成不会错。但那车是蓝色的概率仅有41.38%。

(15%×80%)/(85%×20%+15%×80%)

最后,也是我觉得最有意思的,是这样一个问题:

有个人,生了俩孩子,已知其中一个是男孩,这个男孩的生日是星期二,问另一个小孩是男孩的概率。

直觉上似乎觉得,你生几个小孩,每个小孩是男孩的概率不都是1/2吗?这跟你是不是星期二生的有啥关系啊!但答案是13/27。

看到这里的时候,我的手机没电了。于是就在床上闭着眼睛算。今天为了验证,我写了一段程序来模拟这个场景:

one_tuesday_boy = 0

one_tuesday_boy_plus_another_boy = 0

for gender1 in ['m', 'f']:

for birth1 in range(1, 8):

for gender2 in ['m', 'f']:

for birth2 in range(1, 8):

if (gender1 == 'm' and birth1 == 2) or (gender2 == 'm' and birth2 == 2):

one_tuesday_boy += 1

if gender1 == 'm' and gender2 == 'm':

one_tuesday_boy_plus_another_boy += 1

print one_tuesday_boy_plus_another_boy, '/', one_tuesday_boy

因为假设生男生女还一周七天出生的概率都是一样的,那么一共就有2×7×2×7=196种相等概率的可能性。通过程序枚举得到,其中有一个周二出生的男孩的情况是27种,这27种中又是两个男孩的情况是13种。很暴力地得到了

文章来源于Crossin,由课课家平台整理,转载请注明。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值