算法:生日悖论

【齐天的博客】转载请注明出处(万分感谢!):
https://blog.csdn.net/qijinglai/article/details/90081586

问题:若一个房间里有至少两个人生日相同的概率>50%,那么房间里最少有多少人。

设定,一年365天 = n,问题结果为k,

先分析两个简单问题:

  1. 考虑两个人在屋子里,若两个人生日相同,就是从365天中选一天,即C(1,n)
  2. 考虑问题的对立面求解, 全屋子的人都不相同的事件记为B(K),即B(k)=1-50%=50%

抓住B(k)来分析,k个人全都不同,换一种说法,也就是说有k-1个人都不同,并且第k个人与前k-1个人也不同,[将第k个人与前k-1个人也不同的事件记为A(k)],

转换为公式表示:B(k) = B(k-1) ∩ A(k)

再讲事件转换为概率

 P(B(k)) = P(B(k-1)) * P(A(k)|B(k-1))

这个式子是个递归,如果看不出来我们就先把每一项都写出来:

 P(B(k)) = P(B(k-1)) * P(A(k)|B(k-1))
 P(B(k-1)) = P(B(k-2)) * P(A(k-1)|B(k-2))
 ...
 P(B(2)) = P(B(1))*P(A(2)|B(1))

可以看出后一项可以带入前一项,最后得到结果:

P(B(k)) = P(B(1)) * P(A(2)|B(1)) * P(A(3)|B(2)) * ... * P(A(k)|B(k-1))

分析一下这个式子,

  • P(B(1)):表示一个人在屋子里生日互不相同的概率,这是必然的,P(B(1)) = 1
  • 其余部分我们把 * -> ∩
P(B(k)) = P(B(1)) ∩ P(A(2)) ∩ P(A(3)) ∩ ... ∩ P(A(k))
		=1 * (n-1)/n * (n-2)/n * ... * (n-k+1)/n
		=(1-1/n)(1-2/n)(1-3/n)...(1-(k-1)/n)

这里用到一个公式 ln(x-1)<x
令x=1/n,则上式可变为

P(B(k)) = exp(-1/n)exp(-2/n)exp(-3/n)...exp(-(k-1)/n)
		=exp(k(1-k)/2n)

所以我们只需求exp(k(1-k)/2n)>=50%即可

将n=365带入,求得22.5

结论:生日悖论是指如果一个房间里有23个人或以上,那么至少有两个人生日相同的概率大于50%

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Qi T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值