本文探讨了一个经典的概率问题:在一个团体中,需要多少人才能保证每个人都能过到自己生日?作者首先介绍了优惠券收集器问题,并用它来计算在生日均匀分布的情况下,期望看到所有生日所需的平均人数。随后,作者引入了包含-排除原理,并用它计算了在给定人数下,所有生日都被庆祝的概率。为了更直观地理解,作者使用 Rust 语言编写了三种不同的蒙特卡罗模拟模型,并比较了它们的效率和准确性。最后,作者尝试使用 Flajolet 提出的公式来计算在真实的生日分布情况下,期望看到所有生日所需的人数,但由于计算复杂度过高,无法得到精确结果。