生日悖論(Birthday paradox)

閱讀時間約 4 分鐘
假設今天有一個充滿人的房間,有兩個人的生日日期是相同的機率是多少?
今天房間裡如果有366個人,我們可以非常快速的就知道一定會有兩個人有相同的生日,在這房間裡有相同生日日期的人的機率=1。
那當房間裡有多少人的時候兩個人的生日相同的機率會大於50%呢?當有多少人的時候這機率會甚至大於99%呢?大家不妨先猜一下,真實答案可能和你的猜測大相逕庭唷。因此這才被稱為生日悖論!
先揭曉謎底。
其實只要房間裡有23個人,則兩個人的生日相同的機率就高達50%!
而只要房間裡有60個人,兩人有相同生日日期的機率便會大於99%!
有沒有非常違反你的直覺呢?
是怎麼樣得到這個結果的呢?首先,我們應該以另一個角度切入問題,意即考慮每個人生日都不同的機率是多少。 從這個角度出發,假設房間有N人,N人的生日日期皆不相同的機率(P)會是
而為了計算房間內有至少兩人生日相同的機率,我們只需將1減去P便可得到。這代表我們將所有可能的結果(機率為1)扣除所有人生日皆不相同的狀況(機率為P),扣除後的機率代表的即為至少兩人生日相同的機率(1-P)。
當N=23時,P會小於0.5,因此1-P>0.5,當房間裡有23人時兩個人的生日相同的機率就會大於50%。當N=60時,兩人有相同生日日期的機率便會大於99%!
這是理論上的結果,除此之外,我們也可以用Julia透過蒙地卡羅模擬法估計發生機率。
註:接下來會使用蒙地卡羅模擬法來估計,若對蒙地卡羅模擬法還不熟悉的朋友可以先服用此篇文章

Julia程式碼

# 匯入套件StatsBase、Combinatorics、Plots以及PyPlot
using StatsBase, Combinatorics, Plots ; pyplot()
# 自定義一個函數(function)用來計算理論解
# 給定不同n(人數)的情況下,有兩人生日相同的機率
# 使用prod()這個函數,計算括弧內所有值的乘積(從365/365*364/365*…*1/365)即為
# 每人生日皆不同之機率,再用1去減
matchExists(n) = 1 — prod([k/365 for k in 365:-1:365-n+1])
# 自定義一個函數模擬房內有不同人數的情形,且定義方法與matchExists()有些差別。
# 首先,利用rand()隨機(uniform dist.)從1~365產出n個值,代表每個人的生日日期。
# 接著使用counts計算每個數字出現的次數並指派給dayCounts,
# 再來,用maximum()檢查dayCounts裡最大值是否大於1次,即是否有兩人生日相同
# 若是,回傳ture,反之則回傳false
function bdEvent(n)
birthdays = rand(1:365,n)
dayCounts = counts(birthdays, 1:365)
return maximum(dayCounts) > 1
end
# 模擬重複試驗N次,並計算N次中有兩人生日相同的次數,再除以N,得到機率。
probEst(n) = sum([bdEvent(n) for _ in 1:N])/N
# 使用自定義之函數,計算理論上房內有1~60人時兩人有相同生日的機率
xGrid = 1:60
analyticSolution = [matchExists(n) for n in xGrid]
# 使用蒙地卡羅模擬法估計在房內有不同人之情況下,房內有1~60人時兩人有相同生日的機率
N = 10³
mcEstimates = [probEst(n) for n in xGrid]
# 將理論結果與蒙地卡羅模擬法估計出的結果繪製出來比較。
plot(xGrid, analyticSolution, c=:blue, label=”Analytic solution”)
scatter!(xGrid, mcEstimates, c=:red, ms=6, msw=0, shape=:xcross,
label=”MC estimate”, xlims=(0,60), ylims=(0, 1),
xlabel=”Number of people in room”,
ylabel=”Probability of birthday match”,
legend=:topleft)
從圖中可看出估計得非常準確,而當人數超過20時房內有人有相同生日日期的機率已經高達40%了,當房內有超過40人時,有人有相同生日日期之機率則高達90%!
有興趣可以至我的blog參考原文文章:https://www.juliansweb.com/julia-birthday-paradox
為什麼會看到廣告
4會員
25內容數
留言0
查看全部
發表第一個留言支持創作者!
詹永裕的沙龍 的其他內容
經濟制度
閱讀時間約 3 分鐘
資源有限下的抉擇
閱讀時間約 9 分鐘
Julia介紹&序言
閱讀時間約 2 分鐘
你可能也想看
創作者要怎麼好好休息 + 避免工作過量?《黑貓創作報#4》午安,最近累不累? 這篇不是虛假的關心。而是《黑貓創作報》發行以來可能最重要的一篇。 是的,我們這篇講怎麼補充能量,也就是怎麼休息。
Thumbnail
avatar
黑貓老師
2024-06-29
birthday pony 生日小馬This is a birthday pony  這是生日小馬 This is a strange kind of rest  這是一種奇怪的部分 Because I feel like a guest  因為我感覺像個客人 When I'm right here at home  當我在家裡這裡
Thumbnail
avatar
Ian
2021-08-14
乃木坂46 9th BIRTHDAY LIVE 4期生LIVE & 3期生LIVE乃木坂46 9th BIRTHDAY LIVE因應COVID-19防疫需求分成三個波段,第三波段就是5月才登場、以直播形式呈現的4期生LIVE和3期生LIVE。身為團內的新世代,4期生和3期生背負著傳承團體歷史的使命,卻又必須自己開拓新的疆域。這次直播LIVE是很好的驗收。快來看看有什麼厲害吧!
Thumbnail
avatar
純淨之島
2021-05-16
生日・Me Time・耍廢雖然我不知道自己為甚麼會在生日那天洗廁所的地板, 但我就是這樣做了。 看不過眼地板太污糟, 一洗為快。 已經早過了會想在生日慶祝的年齡, 最好不要提醒我又大了一歲, 我不想知不想提起, 靜靜過這一天就好, 所以送給自己的生日禮物, 就是請一天假, 然後宅在家裏, 好好享受Me Time。 Me T
Thumbnail
avatar
梁淑淇
2021-01-19
生日 “蛋糕人” (Kagemand) 丹麥的生日文化很特別 (之前已經有介紹過),除了他們有自己獨特的生日快樂歌和禮物文化等等外,今天想分享一個也是丹麥獨特的生日文化 "蛋糕人。"
Thumbnail
avatar
Danielson在童話王國丹麥
2021-01-13
【一周隨想 #031】生日回顧 Happy Birthday To Me!今天我生日,又長大一歲了!Happy Birthday To Me! 過去一年發生很多事情,尤其是新冠肺炎 (COVID-19),這肺炎疫情一定是2020年,甚至乎是二十世紀,世界最重大事件之一,令世人難以忘懷。
Thumbnail
avatar
Emma
2020-10-15
9月12日生日快樂:「哥哥」張國榮(Leslie Cheung,1956-2003)哥哥離開塵世,至今已屆17個寒暑,往昔五光十色的香港演藝圈,近年來已不斷褪色、蒙塵,雲海彩虹被灑上黑墨,獅子山的日出已不再耀眼,縱然新生代的歌手影星不斷發聲,但回顧過去香港電影大量輸出的黃金年代,寧采臣的純真與熱愛,我們是否已不復見?
Thumbnail
avatar
私の部屋:世界、歷史、人生的万華鏡
2020-09-12
生日快樂 for Penny粉紅色,因為想到妳就甜甜,永遠的少女。   還記得小時候,那時還懵懵懂懂的我們,一起討論著彼此的夢想,妳說妳要開一間美髮廳,而我想開一間畫廊咖啡廳,我們笑著說好那就來個複合式空間吧!再來個服飾如何,這塊我們一起經營就好。 即使時光飛逝,我們都從小女孩變成大人了..
Thumbnail
avatar
Gloria Sun│杏豆夫人
2020-04-14