生日悖论分析。生日悖论指如果一个房间里有 23 人或以上,那么至少有两个人生日相同的概率大于50%。编写程序,输出在不同随机样本数量下,23个人中至少两个人生日相同的概率。
时间: 2024-11-27 21:16:34 浏览: 64
生日悖论是指尽管人口基数较小,但随着人数增加,达到一定程度时,同一天生日的概率会迅速上升。要模拟这个问题,我们可以使用概率统计的知识,结合Python编程来计算。以下是使用Python的一个简单实现:
```python
import random
from math import comb
def birthday_paradox(n_people, n_days=365):
"""计算n_people个人中有至少两人同一天生日的概率"""
total_combinations = comb(n_days, n_people) # 总共的组合数
combinations_with_duplicates = comb(n_days, n_people, r=True) # 包含重复的情况
at_least_two_same_birthday = combinations_with_duplicates / total_combinations * 100 # 相比总组合,概率超过50%
if at_least_two_same_birthday > 50:
return f"当有{n_people}人时,至少有两人同一天生日的概率超过50%,为{at_least_two_same_birthday:.2f}%"
else:
return f"当有{n_people}人时,至少有两人同一天生日的概率仍低于50%,为{at_least_two_same_birthday:.2f}%"
# 调用函数并输出结果
for num_people in range(20, 31): # 示例中的23人为其中一个情况
result = birthday_paradox(num_people)
print(result)
阅读全文