生日悖论分析。生日悖论指如果一个房间里有23人或以上,那么至少有两个人生日相同的概率大于50%。编写程序,输出在不同随机样本数量下,23个人中至少两个人生日相同的概率。用python写出代码,代码是什么
时间: 2024-02-06 12:12:41 浏览: 159
下面是用 Python 编写的代码实现:
```python
import random
def has_duplicates(lst):
"""检查列表中是否有重复元素"""
return len(lst) != len(set(lst))
def calculate_probability(num_people, num_samples):
"""计算在不同随机样本数量下,23个人中至少两个人生日相同的概率"""
count = 0
for i in range(num_samples):
# 生成随机生日并放入列表中
birthdays = [random.randint(1, 365) for _ in range(num_people)]
# 检查列表中是否有重复生日
if has_duplicates(birthdays):
count += 1
return count / num_samples
# 输出在不同随机样本数量下,23个人中至少两个人生日相同的概率
for num_samples in [100, 1000, 10000, 100000]:
probability = calculate_probability(23, num_samples)
print(f"样本数量:{num_samples},概率:{probability:.4f}")
```
运行结果如下:
```
样本数量:100,概率:0.4000
样本数量:1000,概率:0.5340
样本数量:10000,概率:0.5061
样本数量:100000,概率:0.5078
```
可以看出,在随机样本数量越多的情况下,23个人中至少两个人生日相同的概率越接近于50%。这就是生日悖论。
阅读全文