import random
n = 23
sum=0
for i in range(1000):
list=[]
for _ in range(n):
k=random.choice(range(365))
list.append(k)
for i,_ in enumerate(list):
if _ in list[i+1:]:
sum+=1
break
print(sum/1000)
第二种代码:
import random
persons = 23
counts = 0
stop = 10000
for i in range(1, stop+1):
birthdays = []
for i in range(persons):
n = random.randint(1, 365)
birthdays.append(n)
length1 = len(birthdays)#其实就是persons
length2 = len(set(birthdays))
if length1 != length2:
counts = counts +1
print(f'{persons}人中至少两个人生日相同的概率是{counts/stop*100:.2f}%')
题目
生日悖论分析。生日悖论指如果一个房间里有23人或以上,那么至少有两个人生日相同的概率大于50%。编写程序,输出在不同随机样本数量下,23个人中至少两个人生日相同的概率。