學習軌道
/
Elixir
Elixir
/
練習
/
令人費解的生日
令人費解的生日

令人費解的生日

中等

簡介

大學剛畢業,你辦了一場盛大的派對,和朋友、家人一起慶祝。來了超過 70 個人,其中包括有點古怪的泰德叔叔。

他又照慣例搞怪,跟你打賭 100 英鎊,說在場至少會有兩個人的生日是同一天。這聽起來太荒謬了:可能的生日遠比賓客的人數多,於是你自信滿滿地答應了。

令你大吃一驚的是,才問了 32 位賓客的生日,你就已經找到兩個生日相同的賓客。你認賠,把 100 英鎊交給泰德叔叔,但總覺得哪裡怪怪的。

隔天,好奇心還是戰勝了你。上網快速一查,你找到了生日悖論,這才發現只要 23 個人,有兩個人同一天生日的機率就超過 50%。

啊。原來_這_就是泰德叔叔這麼有把握的原因。

你下定決心要扳回一城,開始研究其他悖論;下一次,就換_你_來當那個跟別人打賭的人了。

Note

生日悖論是一種真實悖論:即使感覺不對,實際上卻是真的。

說明

你的任務是估計生日悖論的機率。

為此,你需要:

  • 產生隨機的出生日期。
  • 檢查一組隨機產生的出生日期中,是否至少有兩個擁有相同的生日。
  • 針對不同的人數,估計一個群體中至少有兩人生日相同的機率。
Note

出生日期包含完整的出生年月日(年、月、日),而生日只指月和日,它們每年都會重複。 兩個出生日期若有相同的月和日,就對應到相同的生日。

Caution

生日悖論假設:

  • 有 365 個可能的生日(不計閏年)。
  • 每個生日的可能性相同(均勻分布)。

你的實作必須遵循這些假設。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Elixir Exercism

準備好開始 令人費解的生日 了嗎?

註冊 Exercism,透過 58 個概念168 個練習 和真人引導來學習並精通 Elixir,全部免費。