对于黑死病,P社设置的一段循环是25天,也就是疾病相关参数每25天更新一次。每次循环时会发生以下事:
1.根据上一次循环时的病例数,计算死亡数和恢复数。
具体计算中,上一次循环时的病例数中的25%被“决定命运”,也就是25%的病例会死亡或康复。
重点来了,虽然在黑死病的文档中显示死亡率为0.3至0.6,但在多次实际测试后发现,其实被“决定命运”的病例中,“53.6%”会死亡,剩余的大部分恢复,小部分变为易感(不清楚是什么原因,或许是浮点数舍入bug,但是死亡率是确定的)。
在测试中,“53.6%”这一死亡率似乎是恒定不变的。楼主自己跑了很多测试样例,还让好厚米也跑了一个,测出来死亡率都是这个结果。
【有时候死亡数会突然突破0.25*0.563的上限,猜测P社可能写了个类似爆发事件的机制】
2.更新病例数和恢复数。
恢复数计算只需要把第一步中的恢复者简单加入即可,关键在于病例数的计算。
病例数有两个来源,外源和内源:
"""
本轮病例数=上一轮病例数+内源病例数+外源病例数-第一步中被“决定命运”的人数
"""
内源病例数的计算需要用到“再生数”R0。其实P社似乎把传播率和“再生数”给弄混了,P社代码中的“再生数”R0其实是传播率。这里只需要知道,本帖语境下的R0是一段循环内,一个感染者能传染的感染者数。P社设计的R0基准值从1.1到1.9不等,不过这其实不是很重要,原因会讲。
总之,内源病例数计算为:
"""
上一次病例数*R0
"""
外源病例数是P社传染病学传播机制的最大败笔之一。在外源传播中,传播源地块会直接导致被传播地块增加相当于传播源地块"9%数量"的感染者!!!
【9%是经验值,可能不是很准,但外源传播数的确是仅有发生于不发生两类,且只与传出地人口有关】
也就是说,传播量与两地之间移民无关

,与两地之间交通也无关,是完完全全写死的9%。让我们再补充一下可能的传播源和被传播地块:
"""
在传播源满足感染率下限(基准30%;恶劣地形*1.75;“有道路”,不论道路通向哪里*0.5)的情况下:
a、国家内的任意地块到首都
b、市场内任意地块到市场中心
c、有贸易的两个市场中心之间
d、相邻地块
"""
这就导致了一个问题:首都和市场中心所接受的外源病例数非常恐怖。