📜  什么是生日问题?(1)

📅  最后修改于: 2023-12-03 14:49:13.330000             🧑  作者: Mango

什么是生日问题?

生日问题(Birthday Problem)是一个经典的概率问题,也被称为生日悖论。假设有n个人在同一房间内,问至少有两个人生日相同的概率是多少?以下是一个程序员需要知道的相关知识。

公式

使用排列组合公式可以推算出生日问题的概率。对于n个人的情况,概率公式为:

P(n) = 1 - (365! / [(365-n)! * 365^n])

其中,365是一年中的天数(不考虑闰年),n是房间内的人数。该公式计算n个人同时生日不同的概率,通过1-P(n)可以得到至少有两个人生日相同的概率。

实现

可以使用编程语言来实现生日问题的计算。以下是Python的实现:

from math import factorial

def birthday_paradox(n):
    p = 1 - factorial(365) / (factorial(365-n) * 365**n)
    return p

n=23时,计算结果为0.5072972343239854,即半数以上的概率至少有两个人生日相同。这也是生日问题的常见说法,也被称为“23人问题”。

应用

生日问题的应用十分广泛。在计算机科学中,它可以被用于哈希碰撞的概率估计;在密码学中,它可以被用于破解生日攻击(Birthday Attack)等。此外,生日问题的思想也可以帮助人们更好地理解其他概率问题。