乙個房間裡的人數必須達到多少,才能使兩個人生日相同的機會達到
50%?不考慮閏年情況,也就是一年按照
365天來計算。
解答:假設房間裡的人數是
k,我們對其進行編號:
1, 2, … , k
。為簡單起見,用
n表示一年的天數(也就是
365天),那麼乙個人的生日在一年中的哪一天應該是機會均等的,我們用
bi表示第
i個人的生日,
1<=bi<=n
,因此,
pr=1/n
,對於i=1,…,k
;r=1,...,n
成立。這個問題可以通過求補法來求解:
也就是先計算任意兩個人的生日都不相同的概率,然後用
1去減,就可以算得相應概率。
k個人各有互不相同生日的事件為
bk = ∩ai(i=1,..,k)
其中ai
是指對所有的j,i
與j生日不同的事件。
bk=ak ∩bk-1
ðpr=prpr
初始條件
pr=pr=1. 如果
b1,b2,…,bk-1
互異,條件概率bk與
b1,b2,..bk-1
互異的概率為
(n-k+1)/n
pr=1*((n-1)/n)* ((n-2)/n)*…((n-k+1)/n)
根據1+x<=e[x]
pr<=e[-1/n-2/n…-(k-1)/n]<=0.5
k(k-1)>=2nln2
當n=365
時,解得
k>=23
。因此,如果至少有
23個人在乙個房間裡,那麼至少有兩個人生日相同的概率至少是
0.5。
乙個房間裡必須要有多少人,才能讓某人和你生日相同的概率至少為
1/2?必須要有多少人,才能讓至少有兩個人生日為7月
4日的概率大於
1/2。
第乙個問題:
使用與前面類似的分析方法,可以得
1-((n-1)/n)[k-1] >= 0.5
從而解得
k>=254人
第二個問題:
同樣採用求補法:
分成兩種情況考慮問題:
第一種情況:沒有乙個人生日為7月
4日第二種情況:有乙個人生日為7月
4日可得表示式
1-((n-1)/n)[k] – (k/n)((n-1)/n)[k-1]>=0.5
演算法問題 生日悖論
問題 乙個屋子裡人數必須要達到多少人,才能使其中兩人生日相同的機會達到50 為了回答這個問題,設 1 設k是屋子裡的總人數,對每乙個人進行編號,則編號為1,2,3 k 2 設所有年份都是365天,最大天數n 365 3 bi表示第i個人的生日天數,所以1 bi 360,1 i k public cl...
《演算法導論》學習筆記 排序問題
核心思想 就相當於你在抓取撲克牌,第一張撲克牌是不用排序的,當你抓取第二張撲克牌的時候才與之前的撲克牌排序,當你抓取第三張撲克牌的時候,第 一 二張撲克牌是已經排好的。package com.example public class myclass i沒有以0開始,是因為第一張撲克牌不用排序,相當於...
《演算法導論》學習筆記
4.5.1 二分查詢 乙個經典的問題 如何在乙個嚴格遞增序列a中找出給定的數x 最直接的辦法是 線性掃瞄序列中的所有元素,如果當前元素恰好為x,則表明查詢成功 如果掃瞄完整個序列都沒有發現給定的數x,則表明查詢失敗,說明序列中不存在數x。這種順序查詢的時間複雜度為o n 更好的辦法便是使用二分查詢 ...