生日悖论分析python
时间: 2023-07-11 10:59:17 浏览: 121
生日悖论是指在一个有限的集合中,当取的元素个数足够大时,其中一些元素会出现重复的现象。具体来说,如果有n个人随机选择生日,那么当n大于等于23时,至少有两个人生日相同的概率超过50%。
我们可以用Python来模拟生日悖论。假设我们要模拟1000次,每次随机选择23个人的生日,可以使用以下代码:
```python
import random
def has_duplicate(lst):
return len(lst) != len(set(lst))
num_trials = 1000
num_duplicates = 0
for i in range(num_trials):
birthdays = [random.randint(1, 365) for _ in range(23)]
if has_duplicate(birthdays):
num_duplicates += 1
print("Probability of two people sharing a birthday in a group of 23:", num_duplicates/num_trials)
```
在上面的代码中,我们定义了一个函数`has_duplicate`,用来判断一个列表中是否有重复的元素。然后我们进行1000次模拟,每次生成一个23个元素的列表,判断其中是否有重复的元素。如果有,则记录下来。最后输出概率即可。
运行上面的代码,我们可能会得到类似于以下的输出:
```
Probability of two people sharing a birthday in a group of 23: 0.517
```
这意味着,在1000次模拟中,有超过50%的模拟中出现了23个人中有两个人生日相同的情况,与生日悖论的预测相符。
阅读全文