有趣的概率算法--生日悖论

在算法导论书上看到个比较有意思的概率算法,在这里加上自己的理解分享下:

上次刚看同学发的朋友圈说道:“两个人同一间宿舍,而且同年同月同日生,这个缘分真的是醉了”,当时我也是醉醉的,看了这个算法后才发现,屋里有23个人,那么就可以50%的概率生日是一样的。

是这样子证明的:

首先,假设屋子里有K个人,分别对他们编号1,2,3….k号。不考虑闰年的情况,那么一年就有n=365天,首先还是要假设生日是均匀分布在一年的n天中(喜欢在春天生就都在春天生这就不均匀了),然后还要假设两个人生日相互独立(什么双胞胎那些还用得着算么),

那么两个人同一天(具体的一天)生日的概率就1/n2 (生日的概率是1/n,两个人同一天生日当然就相乘了~),那么两个人同一天生日(365天随便一天)的概率就是1/n (n个1/n2相加)

也就是说假如屋里面有两个人,那么他们同一天生日的概率是1/365,那现在要解决的问题是,屋里要有多少人,才能使这个概率上升到1/2 ?

用事件的对立面来求,假设事件P={屋里至少两个人生日一样},Q={屋里每个人生日都不一样},那么P=1-Q

那么知道Q的概率就能知道P的概率了,设BK为前K个人的生日都有一样,Ai为前第i个人与前i-1一个人的生日都不一样,那么就可以得到递推式子

Bk=Bk-1^Ak

它的等价形式为

P{Bk}=P{Bk-1}P{ Ak | Bk-1}

应用递归式可以得到P{Bk}=P{B1} P{ A2 | B1} P{ A3 | B2}… P{ Ak-1 | Bk-2} P{ Ak | Bk-1}

=1*(n-1/n) (n-2/n)… (n-k+1/n)(B1是规定为1的,然后P{ A2 | B1}就是365中有一天已经给B1用了,那么就剩下n-1天了,所以概率为(n-1/n))

P{Bk}=1*(1-1/n) (1-2/n)… (1-k-1/n)

然后已知 1+x<=ex(两个都是单调增函数,取0时为相等,过了就ex 大了,高中学的嘿嘿)

那么有1*( ) ( )… ( )<=(e-1/n)(e-2/n)…(e-(k-1/n))= (e-k(k-1)/2n))<=1/2

求得当n=365时,必有k>=23,所以结论是至少有23个人在一间屋子里,那么至少有两个人生日相同的概率至少是1/2。

时间: 2024-10-19 10:40:50

有趣的概率算法--生日悖论的相关文章

密码学经典之生日悖论与生日攻击【详解】

生日悖论 在算法导论书上看到个比较有意思的概率算法,在这里加上自己的理解分享下: 上次刚看同学发的朋友圈说道:“两个人同一间宿舍,而且同年同月同日生,这个缘分真的是醉了”,当时我也是醉醉的,看了这个算法后才发现,屋里有23个人,那么就可以50%的概率生日是一样的. 是这样子证明的: 首先,假设屋子里有K个人,分别对他们编号1,2,3….k号.不考虑闰年的情况,那么一年就有n=365天,首先还是要假设生日是均匀分布在一年的n天中(喜欢在春天生就都在春天生这就不均匀了),然后还要假设两个人生日相互独

生日悖论

假设你参加一个舞会,舞池里有30个人,请问是其中某两个人有相同的生日可能性更大呢?还是没有哪两个人有相同生日的可能性更大? 这就是所谓的生日悖论,直觉上我们会觉得一年有365天,如果只有30个人,那么存在两个人同一天生日的可能性应该很低.但是与直觉上的认识相违背的是,通过严密的数学推导可以证明这个可能性其实相当高.特别地,对于60或者更多的人,这种概率甚至要大于99%. 假设每个人的生日是一年365天中随机的一天,每个人都是独立且均匀地随机选取的,在这个假定下,可以建立分析该问题的数学模型.注意

Birthday Paradox lightoj 1104 生日悖论(概率)

Description Sometimes some mathematical results are hard to believe. One of the common problems is the birthday paradox. Suppose you are in a party where there are 23 people including you. What is the probability that at least two people in the party

LightOj 1104 - Birthday Paradox(生日悖论概率)

题目链接:http://lightoj.com/volume_showproblem.php?problem=1104 题意:一年365天,在有23个人的情况下,这23个人中有两个人生日相同的概率是大于 0.5 的: 现在在不同的星球上一年有n天,求出x,至少有 x 个人才能使得这 x 人中有两个人的生日相同的概率是>=0.5的:现在除了自己之外还要 x 个人,求x: 我们按 n = 365 算的话,那么有x个人,这些人生日都不相同的概率是 p = 1 * 364/365 * 363/365 *

算法问题——生日悖论

问题: 一个屋子里人数必须要达到多少人,才能使其中两人生日相同的机会达到50%? 为了回答这个问题,设: 1.设k是屋子里的总人数,对每一个人进行编号,则编号为1,2,3···k 2.设所有年份都是365天,最大天数n=365 3.bi表示第i个人的生日天数,所以1<=bi<=360,1<=i<=k public class Main { /** * 第i个人的生日正好在"第r天的概率"为: * * P{bi=r} = 1/n */ /** * 第i个人和第j个

Light OJ 1104 Birthday Pardo(生日悖论)

ime Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Description Sometimes some mathematical results are hard to believe. One of the common problems is the birthday paradox. Suppose you are in a party where there are 23 people in

奇特的数学问题(转)

来源 | 世界奥林匹克数学竞赛(中国区)选拔赛组委会 1.三门问题(蒙提霍尔问题)  假如你正在参加一个节目.主持人给了你三扇门,其中一扇门里面是一款崭新的汽车,另外两扇门里面都是一只羊.你选择了其中一扇,然后,主持人打开你未选的另外两扇门里是羊的那一扇,然后-- 主持人问你:你是否要换一扇门?还是就要你刚才选的那一扇? 你会怎么做? 你第一反应一定是就要你刚才选的那一扇. 到目前为止,一切都没有问题,对吧? 因为现在只有两扇门了,你可以推断出,有一半的机会赢得那辆车.对吗? 你错了?? 这个游

概率分析和随机算法(2)——算法导论(6)

1. 引言 接下来几篇将通过几个有趣的例子继续探究概率分析和随机算法. 2. 生日悖论 (1) 问题的提出 我们的第一个例子是生日悖论:一个屋子里人数必须要达到多少人,才能使其中两人的生日相同的机会达到50%.你可能认为是365 / 2,但事实上,答案是一个很小的数值.下面我们对这个问题进行分析. (2) 分析问题 我们首先找出问题的关键.这个问题的关键就是:人数(设为k)和他们中两人生日相同的概率(设为P1)的关系.要分析P1,我们可以从两个方面(直接正面思考和从其对立面思考)进行思考: 需要

10-3国庆节第六场模拟赛题解

T1 炮 (cannon) Description Makik 曾经沉迷于打麻将,热衷于点炮的他近日终于开始爱上了中国象棋.面对一个n×m的棋盘,他不禁陷入了思考:在这张棋盘上摆"炮",并且任意两个"炮"之间不会互相攻击的方案数究竟有多少呢? 说明:两枚炮可以互相攻击,当且仅当它们处在同一行或同一列上且恰好间隔一枚棋子,即"炮打隔山". 由于 Makik 记不住太大的数字,所以请告诉他答案对 999983 取模的结果. Input 输入文件包含一