生日悖論(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
為什麼會看到廣告
avatar-img
4會員
25內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
詹永裕的沙龍 的其他內容
Julia同時具有高可讀性又有高運算能力,比起Python及R更加吸引人。此系列文章將引用Statistics With Julia的程式碼並介紹重要統計概念。
點估計(point estimation)是指用樣本資料來估計母體參數,使用一個點的數值表示其估計值,因此稱為點估計。事實上我們相當常見的樣本平均數或樣本變異數就是點估計,我們是使用樣本資料計算出一個數值,然後再用這個點的數值去估計母體的參數。
一篇文章帶你搞懂何謂蒙地卡羅法。
這是一個資源有限的世界,我們所能得到的東西,能夠使用的金錢、時間,都是有限的,那我們能如何在這些有限的資源中做選擇呢?
每一個國家/經濟體的經濟制度都有所不同,但可以被約略劃分成市場經濟體系、混合經濟體系和計劃經濟體系。這一篇我們就來介紹兩個最常被拿來做比較,也分別分散在光譜的最兩端的兩個制度
個體經濟學和總體經濟學相互用不同的角度來觀察經濟行為。個體經濟學專注在經濟層面中個體的行為。而總體經濟學在研究經濟時則是把經濟視作一個整體切入,使用國民收入、經濟整體的投資和消費等總體性的統計概念來分析經濟運行規律。
Julia同時具有高可讀性又有高運算能力,比起Python及R更加吸引人。此系列文章將引用Statistics With Julia的程式碼並介紹重要統計概念。
點估計(point estimation)是指用樣本資料來估計母體參數,使用一個點的數值表示其估計值,因此稱為點估計。事實上我們相當常見的樣本平均數或樣本變異數就是點估計,我們是使用樣本資料計算出一個數值,然後再用這個點的數值去估計母體的參數。
一篇文章帶你搞懂何謂蒙地卡羅法。
這是一個資源有限的世界,我們所能得到的東西,能夠使用的金錢、時間,都是有限的,那我們能如何在這些有限的資源中做選擇呢?
每一個國家/經濟體的經濟制度都有所不同,但可以被約略劃分成市場經濟體系、混合經濟體系和計劃經濟體系。這一篇我們就來介紹兩個最常被拿來做比較,也分別分散在光譜的最兩端的兩個制度
個體經濟學和總體經濟學相互用不同的角度來觀察經濟行為。個體經濟學專注在經濟層面中個體的行為。而總體經濟學在研究經濟時則是把經濟視作一個整體切入,使用國民收入、經濟整體的投資和消費等總體性的統計概念來分析經濟運行規律。
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
出生在晚上23點-0點前,常常都會有2個八字命盤 命理師每各人演算法不同,所要用的方式不一樣,有人用A方式,有人用B方式 A與B,不同的地方在那裡 A:晚上23時-1時前,換隔日的日柱(2個小時候為一單位) B:晚上23時-0時前(當日的晚子,1個小時),不換隔日日柱,隔日0時-1時
Thumbnail
對命理有興趣的朋友,總覺得的一個好的算命工具或命理師,應該要能鐵口直斷算準所有的事情,例如何時一定會結婚生子,何時一定會升官發財,何時一定會遭遇災禍… 但大家試想若這邏輯成立,表示命運有其必然性,那世界上與其相同八字的人理應都會在同一天結婚,同一天生子,同一天升官發財才對。可事實上並不是如此,因為
Thumbnail
你遇過和自己同一天生日的人嗎? 我知道的第一位和我同一天生日的,是我的外婆。只不過,我們是農曆生日同一天。 而國曆生日在同一天的,我國中的時候曾經遇到第一位,她是我的國文老師;後來則是一位高中的同班同學,也是女生,現在是牙醫師,丈夫也是醫師。 接著,就是同事了。 在前幾份工作中,曾有那些整個
我記得我高中的時後,就開始自稱是神棍,沒事就喜歡拿別人的生日來玩。 大部分的時間就是自已看好玩的,也不會跟別人多說什麼,因為真心覺得我算的不算準。 後來跟幾個人聊過天以後,她們覺得這樣的程度就可以收費了,我也只是笑笑。 當然,也不是所有人願意把生日給我,她說這樣會覺得很赤裸(我在澳洲生活的室友
Thumbnail
接續上一篇,繼續來講如何從常態分布的機率進行假設檢定,進而推論母體的平均數吧! 這篇會提到否證的邏輯、魔法數字0.5以及統計檢定到底是什麼這三個主題。
Thumbnail
今日紐約時報的報導指出: “日曆透過每四年在二月增加一天來解釋地球自轉的不完美。 這是一門經過數千年發展的科學,其歷史可追溯到古埃及人,它為全球大約 500 萬人提出了生日難題。 2月29日出生的機率是1,461分之1。”...
Thumbnail
每年到了二月,我就會相對較忙一些。 原因是,我的生日在二月,而我是個在各個品牌、店家處處留情的人,我總是會加入他們的會員,以致於到了二月,我就會有各種優惠、各種禮券可使用,每到這時我就會忙於「消費」。 認識了現在的伴侶後,忙碌又增高了一些,我們兩個都是二月生日,日期只差一天(不同年份)。因此,前
Thumbnail
生命靈數是一個反映您個性和生命路徑的獨特數字。計算它既簡單又有趣!讓我們一步步來看看如何計算您的生命靈數。
Thumbnail
  在上一篇文章解釋了常態分布怎麼幫助我們計算事件發生的機率,而更之前也看過了抽樣分布是如何形成常態分布的過程,現在就要利用這兩件事情來慢慢帶出什麼是統計學中的「假設檢定」了。
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
出生在晚上23點-0點前,常常都會有2個八字命盤 命理師每各人演算法不同,所要用的方式不一樣,有人用A方式,有人用B方式 A與B,不同的地方在那裡 A:晚上23時-1時前,換隔日的日柱(2個小時候為一單位) B:晚上23時-0時前(當日的晚子,1個小時),不換隔日日柱,隔日0時-1時
Thumbnail
對命理有興趣的朋友,總覺得的一個好的算命工具或命理師,應該要能鐵口直斷算準所有的事情,例如何時一定會結婚生子,何時一定會升官發財,何時一定會遭遇災禍… 但大家試想若這邏輯成立,表示命運有其必然性,那世界上與其相同八字的人理應都會在同一天結婚,同一天生子,同一天升官發財才對。可事實上並不是如此,因為
Thumbnail
你遇過和自己同一天生日的人嗎? 我知道的第一位和我同一天生日的,是我的外婆。只不過,我們是農曆生日同一天。 而國曆生日在同一天的,我國中的時候曾經遇到第一位,她是我的國文老師;後來則是一位高中的同班同學,也是女生,現在是牙醫師,丈夫也是醫師。 接著,就是同事了。 在前幾份工作中,曾有那些整個
我記得我高中的時後,就開始自稱是神棍,沒事就喜歡拿別人的生日來玩。 大部分的時間就是自已看好玩的,也不會跟別人多說什麼,因為真心覺得我算的不算準。 後來跟幾個人聊過天以後,她們覺得這樣的程度就可以收費了,我也只是笑笑。 當然,也不是所有人願意把生日給我,她說這樣會覺得很赤裸(我在澳洲生活的室友
Thumbnail
接續上一篇,繼續來講如何從常態分布的機率進行假設檢定,進而推論母體的平均數吧! 這篇會提到否證的邏輯、魔法數字0.5以及統計檢定到底是什麼這三個主題。
Thumbnail
今日紐約時報的報導指出: “日曆透過每四年在二月增加一天來解釋地球自轉的不完美。 這是一門經過數千年發展的科學,其歷史可追溯到古埃及人,它為全球大約 500 萬人提出了生日難題。 2月29日出生的機率是1,461分之1。”...
Thumbnail
每年到了二月,我就會相對較忙一些。 原因是,我的生日在二月,而我是個在各個品牌、店家處處留情的人,我總是會加入他們的會員,以致於到了二月,我就會有各種優惠、各種禮券可使用,每到這時我就會忙於「消費」。 認識了現在的伴侶後,忙碌又增高了一些,我們兩個都是二月生日,日期只差一天(不同年份)。因此,前
Thumbnail
生命靈數是一個反映您個性和生命路徑的獨特數字。計算它既簡單又有趣!讓我們一步步來看看如何計算您的生命靈數。
Thumbnail
  在上一篇文章解釋了常態分布怎麼幫助我們計算事件發生的機率,而更之前也看過了抽樣分布是如何形成常態分布的過程,現在就要利用這兩件事情來慢慢帶出什麼是統計學中的「假設檢定」了。