生日悖论,指如果一个房间里有23个或23个以上的人,那么至少有两个人的生日相同的概率要大于50%。尝试编程验证。

验证方法提示:使用从1到365的整数代表生日。测试n次,每次生成23个随机数,随机数的范围从1到365(包括365)。
然后查看有无重复的生日。
最后算出重复的比率。

输入格式:

随机数种子x 测试次数n

注意:需将x转换为整数型再进行设置。

输出格式:

rate=算出的比率,比率保留2位小数

输入样例:

3 1000

输出样例:

rate=0.54

 

参考代码

# 导入random库,用于生成随机数
import random

# 从输入中读取两个数字,分别赋值给x和n
x, n = map(int, input().split())

# 使用seed()函数设置随机数种子为x
random.seed(x)

# 初始化变量f为0,用于记录重复生日的次数
f = 0

# 进行n次实验
for i in range(n):
    # 定义一个空集合s,用于存储每次实验生成的23个随机数(模拟23个人的生日)
    s = set()

    # 进行23次循环,每次生成一个1到365之间的随机整数,并加入集合s中
    for j in range(23):
        c = random.randint(1, 365)
        s.add(c)

    # 判断集合s中是否有重复元素(即是否有相同的生日),如果有,则将f加1
    if len(s) < 23:
        f += 1

# 输出实验结果,即重复生日的概率
print("rate={:.2f}".format(f / n))

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐