假设一个班上有30名同学,都是1997年出生,问其中至少有两名同学生日相同的概率是多少?(假设没有平年和闰年的区别,一年只有365天)请编写python 程序,利用蒙特卡罗仿真方法来求解该问题。
import math
import random
def f3(times,count,n):
for time in range(times):
student = [0 for time in range(n)]
for i in range(0, n):
student[i] = random.randint(1, 365) # 产生(1,365)之间的随机整数
flag = 0
for i in range(0, n):
for j in range(i + 1, n):
if student[i] == student[j]:
flag = 1
break
if flag == 1:
count = count + 1
print(count)
p = count / times # 比值
print(p)
if __name__ == "__main__":
times = 10000
count = 0
n = 30
f3(times,count,n)