生日悖论指如果一个房间里有23 或以上人,那么至少有两个人生日相同的概率大于50%。编写程序,输出在不同随机样本数量下,23 个人中至少两个人生日相同的概率python
时间: 2024-03-14 10:45:38 浏览: 60
好的,以下是Python代码实现:
```python
import random
def has_same_birthday(num_people):
birthdays = []
for i in range(num_people):
birthday = random.randint(1, 365)
if birthday in birthdays:
return True
birthdays.append(birthday)
return False
def calculate_probability(num_samples, num_people):
count = 0
for i in range(num_samples):
if has_same_birthday(num_people):
count += 1
return count / num_samples
num_people = 23
for num_samples in [100, 1000, 10000, 100000]:
probability = calculate_probability(num_samples, num_people)
print("在{}个样本中,{}个人中至少两个人生日相同的概率为{:.2f}%".format(num_samples, num_people, probability * 100))
```
首先定义一个函数`has_same_birthday(num_people)`,用于判断在给定人数下是否存在两个人生日相同。该函数首先创建一个空列表`birthdays`,模拟每个人的生日,并将其添加到列表中。如果列表中已经有相同的生日,则返回`True`,否则返回`False`。
接着定义一个函数`calculate_probability(num_samples, num_people)`,用于计算在给定样本数量下,给定人数中至少两个人生日相同的概率。该函数使用`has_same_birthday()`函数模拟每个样本,并统计其中满足条件的数量。最后,将满足条件的数量除以样本数量,得到概率。
最后,在不同的随机样本数量下,调用`calculate_probability()`函数计算23个人中至少两个人生日相同的概率,并输出结果。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)