用python写程序:算生日概率给出n=10 20 30…90 的运行结果,和包含(10,90)这个区间所有点结果的图形,
时间: 2024-09-09 08:14:16 浏览: 35
在Python中,我们可以编写一个简单的函数来计算从n=10到n=90之间的随机生日概率,并生成一个包含这些数据的条形图。首先,我们需要导入必要的库如`random`用于生成随机日期,`matplotlib`用于绘制图形。
```python
import random
import matplotlib.pyplot as plt
def birthday_probability(n):
days_in_year = 365 # 假设一年有365天
num_people = n
unique_bdays = set()
# 随机生成n个人的生日并存储在集合中
for _ in range(num_people):
bday = random.randint(1, days_in_year)
unique_bdays.add(bday)
# 计算至少两个人同一天生日的概率
prob_same_bday = len(unique_bdays) / days_in_year
return prob_same_bday
# 获取指定范围内的概率列表
prob_list = [birthday_probability(i) for i in range(10, 100)]
print("生日概率列表:", prob_list)
# 绘制图形
plt.bar(range(10, 101), prob_list, label='生日概率')
plt.xlabel('年龄范围 (岁)')
plt.ylabel('概率')
plt.title('从10岁到90岁之间生日相同的概率')
plt.legend()
plt.show()
```
在这个脚本中,我们首先计算了每个人单独的生日概率,然后通过减去一个人生日不在特定日子的概率得到至少两个人同一天生日的概率。最后,我们将每个年龄段对应的概率值作为x轴,绘制出一个条形图。
阅读全文