轨道
/
Elixir
Elixir
/
练习
/
令人困惑的生日
令人困惑的生日

令人困惑的生日

中等

简介

刚大学毕业,你办了一场盛大的派对,和亲朋好友一起庆祝。到场的有 70 多人,其中就包括你那位有点古怪的 Uncle Ted。

他又像往常一样搞怪,跟你打赌 £100,说房间里至少有两个人同一天生日。这听起来太荒唐了:可能的生日比客人多得多,于是你信心满满地接下了赌注。

让你吃惊的是,才收集了 32 位客人的生日,你就已经找到了两位同一天生日的人。你愿赌服输,把 £100 递给 Uncle Ted,但总觉得哪里不对劲。

第二天,好奇心占了上风。你随手在网上搜了一下,找到了生日悖论,上面说只要 23 个人,有人生日相同的概率就超过 50%。

啊,原来 Uncle Ted 那么有底气,就是_这个_原因。

你决心要扳回一局,于是开始研究别的悖论;下一次,下赌注的人_就是你了_。

Note

生日悖论是一种真实性悖论:虽然感觉不对,但它确实是真的。

说明

你的任务是估计生日悖论的概率。

为此,你需要:

  • 生成随机的出生日期。
  • 检查一组随机生成的出生日期中,是否至少有 2 个的生日相同。
  • 针对不同的组规模,估计一组人中至少 2 个人生日相同的概率。
Note

出生日期包含完整的年月日(年、月、日),而生日只指月和日,它们每年都会重复。 月和日相同的 2 个出生日期对应同一个生日。

Caution

生日悖论基于以下假设:

  • 共有 365 个可能的生日(不考虑闰年)。
  • 每个生日出现的可能性相同(均匀分布)。

你的实现必须遵循这些假设。

通过 GitHub 编辑 链接将在新窗口或新标签页中打开
Elixir Exercism

准备好开始 令人困惑的生日 了吗?

注册 Exercism,借助 58 个概念168 个练习 和真人导师指导,学习并掌握 Elixir,全部免费。