码个蛋(codeegg) 第 880 次推文
作者:Ele实验室
链接:https://mp.weixin.qq.com/s/HSqdfItspIiM8is7mfH4NQ
视频来源:哔哩哔哩
作者:Ele实验室
网址:https://www.bilibili.com/video/av86478875?from=search&seid=9761497456431213029
文字及内容整理:IDCF
天天强调不要出门不要出门,可是总有人不听,总觉得出去一下没关系。视频作者花了一夜的时间,写了一个简单的疫情传播仿真程序,如果文字还不能让你明确在家待着的重要性,那么希望这个仿真程序能让你直观地感受到什么叫"宅,是最好的防护、最大的贡献"。
由于是仿真,所以选择了面向对象的代表语言:Java。由于时间原因,同时也因为主要是为了讲述事情,所以没有太多严格的数学模型。这里主要使用的是自然界中比较常见的正态分布(高斯分布)去描述大多数现象。
比如人群按照正态分布,人的流动意向也按照正态分布模拟,而病毒的传播率,是一个固定的参数,这是一个很理想的检查模型,但不影响对传播及控制要素的讲解。
这里有几个常量用来控制传播的各个环节。
假设一个城市初始有50个感染者,疫情一开始的时候,由于没有医院的隔离区,也就是医院的床位参数为0,而人们随意流动,也就是人员流动意向高达0.99。
传播是这个样子。病毒将快速的传播。
如果我们每个人都控制自己的流动,也就是把人员的流动意向改为-0.99,传播就会变成这个样子。当然病毒慢慢地也会扩散开来。
所以这时我们需要医院建立隔离区,把床位参数改为100张床,如果此时我们控制自己不随意流动的话,在建立隔离区后,疫情将会被很快地控制甚至消灭。
但是人一开始的时候肯定不会重视,所以把流动意向参数调回到0.99,这个时候你看医院的隔离区、床位很快被占满,疫情将无法控制了。
所以这时只能扩大医院的隔离区,增加床位,我们把床位扩大到原来的10倍,现在再来看一下疫情的传播情况。
ok,疫情很快地被控制了。这就是国家为什么要建立和当年小汤山医院一样的雷火二神山医院。
当然这里还有一个hospital_receive_time参数,医院接收患者的响应时间,也就是一个患者从确诊到被安置隔离的时间。如果这个时间过长,事情也会变得糟糕。
幸运的是,我们的国家正在全力奋战,大家要有信心,我们的响应时间已经足够应对本次疫情,而且会越来越快。
这里大家觉得事情完结了吗?并没有!大多数人都是这么想的:现在国家医院响应速度确实变快了,确诊的也都被隔离了,天气也好了,我出去溜达溜达应该没啥事儿!但是你千万不要忘记,本次病毒有长达14天的潜伏期。
这是我们这里的shadow_time参数,一开始的时候设置成0,相当于没有潜伏期,现在改成140(对应程序里的14天)。
我们再来看看之前被控制得很好的疫情将会变成什么样子?
一开始的时候由于在潜伏期,很难在人群中发现并隔离这些患者,等过了潜伏期以后,就会看见大家前几天所见到的那样突然爆发增长。
这个时候你会发现医院的床位将会很快被占满,一旦床位被占了以后,也就是医疗资源耗尽以后,事情将会回到刚开始的时候,将变得无法控制!
如果这个时候我们能控制自己的流动,把人群流动意向参数改为-0.99,再来看一下传播的情况。
当然这个过程会比较长,但是疫情最终得到了很好的控制,已经逐渐被消灭。
我们可以发现,“人群流动意向”这个参数贯穿始终,基本上起着主导的作用。再大的问题,如果控制好人群的流动就一定会解决。所以即使通过一线医务工作者们的努力,加快了确诊的效率,医院也加快了收治的时间,疫情得到了很好的控制,但是现在我们仍旧处于病毒的潜伏期,也就是说人群中可能有大量的黄色点,而这也是最危险的时刻。
希望大家不要抱有侥幸的心理,尤其是这几天很多地方天气变好了,感觉疫情已经得到了很好的控制,但是放松警惕的时候,恰恰是最危险的时候,国家已经尽自己所能地控制了本次疫情,但是其实最后对本次疫情起到主导作用的恰恰就是我们普普通通的每一个人,雪崩之下没有一片雪花是无辜的。
最后借三体里的一句话:“无知和弱小不是生存的最大障碍,傲慢才是。”
作者的Github地址:
https://github.com/KikiLetGo/VirusBroadcas
近期文章:
今日问题:
宅着的你写了什么程序嘛?
专属升级社区:《这件事情,我终于想明白了》