你是否以前在上學的時候想過這樣一個問題:我們年級裡(或者班級裡)是否有兩個生日一樣的同學?如果一個年級有400人,那麼就必然至少會有兩個同學生日相同(因為一年只有365天或366天)。實際上,我們通過數學計算可以得知其實並不需要那麼多同學,僅僅只需50人的班級中,就有非常高的概率(97%)會出現這種情況,很反直覺吧!今天大小吳來和大家探討一下概率論中非常著名的生日問題。
對於生日問題我們可以這樣描述:
假設每個同學的出生日期都是相互獨立的,並且每個同學都等可能地出生在一年中的任何一天(2月29日除外),那麼要有多少人才能保證其中至少兩個同學的生日在同一天的概率
我們不考慮閏年,假設一年只有365天,因此只要一個年級有366個同學就一定會出現「至少兩個人的生日在同一天」,因此答案必然是2到365的某個數。
想想另一種極端情況,如果一個年級有184個同學,那麼至少兩個人的生日在同一天的概率一定不小於50%,為什麼呢?想想如果前183個同學的生日互不相同(比方說這183個同學的生日正好就是一年的第1~183天),那麼對於第184個同學來說,他與前面183個同學中的某人同一天生日的概率就至少為50%!這並不難理解:因為一年中過半的日期已經被佔用了,最後一個同學要麼和前183個同學中的某人同一天生日,要麼生日是在剩下的182天中。
這樣我們就又縮小了範圍:這個問題的解
並且,直覺告訴我們,肯定是人越多(
2 窮舉法我們可以嘗試用窮舉法來求解這個問題,比如說一種簡單的情況:當
這很容易理解:因為對第一個人來說,他的生日有365種可能,第二個人也有365種可能。在這133225種組合中,兩個人生日在同一天的組合只有365種,這也不難理解:如果兩個人生日在同一天,那麼只要選定了第一個人的生日,第二個人的生日就只有唯一一種可能。
因此當只有兩個人的時候,概率的計算非常簡單:
再來看
計算分母很容易,但在計算分子時要特別當心。因為我們要算的是「至少兩人生日在同一天」,因此這裡我們需要分類討論:對於第一種情況,我們可以這樣計算:假設前兩個人生日在同一天,第三個人生日與他們不同,則共有
(第一個人的生日可以是一年365天中的任何一天,第二個人的生日必須與第一個人相同,而第三個人的生日只能從剩下的364天中選取)類似地,易知這種情況會出現3次:
第一個人第二個人第三個人相同相同不同相同不同相同不同相同相同因此這種情況包含的組合數為
別忘記還有一個很特殊的情況:三個人生日相同,這種情況包含的組合數為365種。
這樣我們可以計算三個人時的概率:
從兩人的
3 計算對立事件的概率因此,窮舉法在這個問題中不是一個理想、高效的方法,我們需要更好的思路。
在概率論中,計算對立事件的概率——
想想這對解決生日問題有什麼幫助呢?很顯然,如果我們記事件
則其對立事件為而計算「所有人的生日都互不相同」這件事的概率是容易的,舉個例子,當
當
沿著這個思路,對於一般情況來說,當人數為
使用連乘符號,我們可以把這個結果改寫成
也許你對這個符號不太熟悉,它是由求和符號推廣而來的,我們知道相應地,有
對上面的表達式再進行一些簡單的處理,得到
4 程序實現上述這個代數式計算的是「至少兩人生日在同一天」的對立事件「所有人的生日都互不相同」的概率,因此我們需要使得
令人遺憾的是,大數的階乘計算起來並不容易,我們可以藉助數學軟體
noshare = {{1, 1}};
share = {{1, 0}};
currentnoshare = 1;
For[n = 2, n <= 50, n++,
{
newfactor = (365 - (n - 1))/365;
currentnoshare = currentnoshare*newfactor;
noshare = AppendTo[noshrae, {n, 1.0 currentnoshare}];
share = AppendTo[share, {n, 1.0 - currentnoshare}];
}]
Print[ListPlot[share, AxesLabel -> {"人數n", "概率P"}]]我們可以得到如下圖像:
從圖中我們可以看出,當
參考文獻[1](美)史蒂文·J.米勒.普林斯頓概率論讀本[M].李馨譯.人民郵電出版社,2020.
喜歡就點亮在看,謝謝支持