python6.5生日悖论
时间: 2023-10-29 19:57:02 浏览: 42
生日悖论是指在一个房间里,只要有23个人以上,那么至少有两个人生日相同的概率超过50%。这个悖论的原因在于人们往往低估了生日随机性的复杂性。
可以通过以下代码来模拟生日悖论:
```python
import random
def has_duplicate(lst):
return len(lst) != len(set(lst))
def generate_birthday():
return random.randint(1, 365)
def generate_birthday_list(n):
return [generate_birthday() for _ in range(n)]
def simulation(num_trials, num_people):
count = 0
for _ in range(num_trials):
birthdays = generate_birthday_list(num_people)
if has_duplicate(birthdays):
count += 1
return count / num_trials
print(simulation(10000, 23))
```
上述代码中,`has_duplicate` 函数用于判断列表中是否有重复元素,`generate_birthday` 函数用于生成一个随机的生日,`generate_birthday_list` 函数用于生成一个包含 `n` 个随机生日的列表,`simulation` 函数用于进行多次模拟并计算生日重复的概率。最后一行代码运行了10000次模拟,每次模拟有23个人,输出生日重复的概率,结果会接近于50%。