標籤:

生日悖論

一個屋子裡人數必須到達多少人,才能使其中兩人生日相同的機會達到50%?

解:假設一年有n天,假設房間里有k人,對於i=1,2,3...k,設b_{i} 表示編號為i的人的生日

於是i和j的生日都落在同一日r的概率是:

P(b_{i}=r   cap  b_{j}=r  ) =P(b_{i}=r  )*P(b_{j}=r  )=1/n^{2}

這樣2個人的生日落在同一天的概率是:

P(b_{i}= b_{j})=sum_{r=1}^{n}{P(b_{i} =r cap b_{j} =r)} =sum_{r=1}^{n}{(1/n^{2} )} =1/n

第i個人的生日可在n-i+1日期中選擇,於是

每個人的生日都不同的概率是:

 ar{P} = frac{n}{n} *frac{n-1}{n}*frac{n-2}{n}...*frac{n-k+1}{n}

至少2人生日相同的概率是:

P = 1-ar{P} =1- frac{n}{n} *frac{n-1}{n}*frac{n-2}{n}...*frac{n-k+1}{n}geq 1/2

#0.492702765676#22def birthday(n=365): k = n;tmp=1.0; for i in range(0,k): tmp = tmp*(n-i)/n if tmp <= 0.5: print tmp print i breakbirthday()

彩蛋:

房間里70人可保證其中2人生日相同的概率大於99.9%

推薦閱讀:

剪繩子
數值的整數次方
6. ZigZag Conversion(medium) & 7.Reverse Integer(easy)

TAG:演算法 |