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

复制代码
传染(infect)某种传染病第一天只有一个患者,前五天为潜伏期,不发作也不会传染人第6天开始发作,从发作到治愈需要5天时间,期间每天传3个人 求第N天共有多少患者

思路:

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

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

python 复制代码
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))
复制代码
相关推荐
Python私教7 分钟前
一次性批准令牌:挡住旧授权误发新版本的工程设计
python·安全
for_ever_love__22 分钟前
python基础语法学习: 数据容器
windows·python·学习
aiqianji30 分钟前
文风接近真人的AI生成短篇小说软件有哪些?
人工智能·python
Sylvia33.1 小时前
从轮询到推送:足球数据API架构演进与火星数据技术拆解
java·服务器·网络·python·websocket·架构
瑞码空间1 小时前
Python爬虫进阶实战笔记
开发语言·python·计算机·python爬虫
杨超越luckly1 小时前
Agent应用指南:获取12306官网全量站点及其编码信息
python·数据挖掘·数据分析·可视化·12306
致Great2 小时前
科研人的 AI,不该只回答问题:我用字节TraeWork 跑了一遍真实研究任务
算法
纵有疾風起2 小时前
线性表的定义与基本操作 — 从逻辑结构到 ADT 接口
数据结构·算法·408·线性表·adt
2401_868534782 小时前
MATLAB:车牌识别
python·django
卷无止境2 小时前
用 FastAPI 撑起大文件的上传下载:从流式处理到断点续传的完整实践
后端·python·fastapi