欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > python练习题—传染问题(治愈)

python练习题—传染问题(治愈)

2026/5/26 14:46:32 来源:https://blog.csdn.net/W030321/article/details/139934615  浏览:    关键词:python练习题—传染问题(治愈)
传染(infect)某种传染病第一天只有一个患者,前五天为潜伏期,不发作也不会传染人第6天开始发作,从发作到治愈需要5天时间,期间每天传3个人 求第N天共有多少患者

思路:

        开始时认为可以进行判断五天或者五天十天后进行计算,但是进行试验后发现这样没有办法判断减少的人,如果强行这样的话会很复杂,得不偿失;

        但是经过搜索后发现可以通过遍历每天的人数,一天天判断让数据进行相互运算

def infect(N):lurk_day = 5  # 潜伏期天数disease_day = 5  # 发作期天数people_inface = 3  # 每天每个发作期患者传染的人数begin = 1  # 患者数now_people = 0  # 当前处于发作期的患者数# 遍历每一天for day in range(1, N + 1):# 如果今天有患者开始发作(即潜伏期结束)if day - lurk_day > 0:# 将昨天处于潜伏期的患者加入到发作期患者列表中now_people += 1# 如果今天有发作期患者结束发作(即治愈)if day - lurk_day - disease_day >= 0:# 将最早开始发作的患者从发作期列表中移除now_people -= 1# 如果今天有发作期患者if now_people > 0:# 计算今天新增的患者数量(由发作期患者传染)new_patients = people_inface * now_people# 将新增患者数量加到总患者数量中begin += new_patients# 返回第N天的患者总数return begin# 示例:计算第10天的患者总数
print(infect(5))

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词