生日悖论分析python
时间: 2023-09-19 21:08:33 浏览: 102
python实现生日悖论分析
生日悖论是指在一个固定的群体中,随机选择两个人,他们生日相同的概率比我们想象的要高。具体来说,当群体中的人数达到23人时,生日相同的概率已经超过50%。
下面是利用Python模拟生日悖论的例子:
```python
import random
def has_duplicates(lst):
"""判断列表中是否有重复元素"""
return len(lst) != len(set(lst))
def generate_birthday():
"""生成随机生日"""
return random.randint(1, 365)
def generate_birthdays(n):
"""生成n个随机生日"""
return [generate_birthday() for _ in range(n)]
def simulate_birthday_paradox(num_trials, num_people):
"""模拟生日悖论"""
count = 0
for i in range(num_trials):
birthdays = generate_birthdays(num_people)
if has_duplicates(birthdays):
count += 1
return count / num_trials
print(simulate_birthday_paradox(10000, 23)) # 输出约为0.51
```
在上面的代码中,我们定义了`has_duplicates`函数用于判断列表中是否有重复元素,`generate_birthday`函数用于生成随机生日,`generate_birthdays`函数用于生成指定数量的随机生日列表,`simulate_birthday_paradox`函数用于模拟生日悖论。最后,我们通过调用`simulate_birthday_paradox`函数并传入模拟次数和人数来得到模拟结果,并输出到控制台。
阅读全文