2021-09-02 17:29:44Rex Wu

【生日問題】的機率計算詳解及列表

【生日問題】的機率計算詳解及列表

生日問題是指,如果在一個房間要多少人,則兩個人的生日相同的機率要大於50%? 答案是23人。 這就意味著在一個典型的標準小學班級(30人)中,存在兩人生日相同的可能性更高。對於60或者更多的人,這種機率會大於99%。這個問題有時也被稱做生日悖論,但從引起邏輯矛盾的角度來說生日悖論並不是一種悖論,它被稱作悖論只是因為這個數學事實與一般直覺相牴觸而已。大多數人會認為,23人中有2人生日相同的機率應該遠遠小於50%。計算與此相關的機率被稱為生日問題,在這個問題之後的數學理論已被用於設計著名的密碼攻擊方法:生日攻擊

對此悖論的解釋

可以把生日悖論理解成一個盲射打靶的問題。對於一個23人的房間,先考慮問題的補集:23人生日兩兩不同的機率是多少?為此,可以讓23個人依次進入,那麼每個人生日都與其他人不同的機率依次是1,364/365,363/365,362/365,361/365,等等。先進入房間的這些人生日兩兩不同的機率是很大的,比如說前面5個是1×364/365×363/365×362/365×361/365=97.3%。而對於最後進入房間的幾個人情況就完全不同。最後幾個人進入房間並且找不到同生日者的機率是... 345/365,344/365,343/365。可以把這種機率看成對一張靶的盲射:靶上有365個小格,其中有17個左右是黑格,其餘是白格。假設每槍必中靶並且分布符合幾何概型的話,那麼連續射12槍左右任何一發都沒有擊中黑格的機率(投射於房間裡的人生日都兩兩不同)是多少呢?想必大家立即會感覺到這個機率十分微小。

理解生日悖論的關鍵,在於考慮上述「依次進入房間」模型中最後幾個進入房間的人「全部都沒碰到相同生日的人」機率有多大這件事情。

簡而言之,大多數人之所以會認為23人中有2人生日相同的機率應該遠遠小於50%,是因為將問題理解為「其他22人與你的生日相同的機率」,而非問題本意「23人之中兩兩之間存在生日相同」。如果考慮到這一點,直覺上會將原來的機率乘以23(注意:此算法並不正確),則會意識到機率很大了。

假設有n個人在同一房間內,如果要計算有兩個人在同一日出生的機率,在不考慮特殊因素的前提下,例如閏年雙胞胎,假設一年365日出生機率是平均分布的(現實生活中,出生機率不是平均分布的)。

計算機率的方法是,首先找出pn表示n個人中,每個人的生日日期都不同的機率。假如n > 365,根據鴿巢原理其機率為0,假設n ≤ 365,則機率為

\bar p (n) = 1 \cdot \left(1-\frac{1}{365}\right)\cdot \left(1-\frac{2}{365}\right)  \cdots \left(1-\frac{n-1}{365}\right) =\frac{365}{365} \cdot \frac{364}{365} \cdot \frac{363}{365} \cdot \frac{362}{365} \cdots \frac{365-n+1}{365}
該圖片顯示特定人數對應的2個人生日一樣的機率

因為第二個人不能跟第一個人有相同的生日(機率是364/365),第三個人不能跟前兩個人生日相同(機率為363/365),依此類推。用階乘可以寫成如下形式

{ 365! \over 365^n (365-n)! }

p(n)表示n個人中至少2人生日相同的機率

 p (n) = 1 - \bar p (n)=1 - { 365! \over 365^n (365-n)! }

n≤365,根據鴿巢原理,n大於365時機率為1。

n=23發生的機率大約是0.507。其他數字的機率用上面的算法可以近似的得出來:

n pn
10 12%
20 41%
30 70%
50 97%
100 99.99996%
200 99.9999999999999999999999999998%
300 1 −(7×10−73
350 1 −(3×10−131
≥366 100%
比較p (n) = 任意兩個人生日相同機率q (n) =和某人生日相同的機率

注意所有人都是隨機選出的:作為對比,q(n)表示房間中有n+1個人,當中與特定人(比如你)有相同生日的機率:

{\displaystyle q(n+1)=1-\left({\frac {364}{365}}\right)^{n}}

n = 22時機率只有大約0.059,約高於十七分之一。如果n個人中有50%機率存在某人跟有相同生日,n至少要達到253。注意這個數字大大高於365/2 = 182.5;究其原因是因為房間內可能有些人生日相同。

生日悖論也可以用Microsoft Excel Spreadsheet類比, 其中A列表示人數,B列表示人數對應的生日相同的機率.

 
A
B
1
  1   =1-PERMUT(365,A1)/POWER(365,A1)
2
  =A1+1   =1-PERMUT(365,A2)/POWER(365,A2)
3
  =A2+1   =1-PERMUT(365,A3)/POWER(365,A3)

當你行數達到23(即人數)時,你可以看到機率結果開始大於50%.

取材自:生日問題- 維基百科網站