欧陆风云5吧 关注:32,588贴子:393,242

【关于黑死病】死亡率竟然是固定的?P社的传播机制形同儿戏?

只看楼主收藏回复

这大概是第一个成功拆解P社黑死病传播和死亡机制的贴子?由于上一个有关黑死病的贴子中出现了大量错误,故重新开一贴,上一贴将会被删除。
可爱的鼠鼠镇楼。


IP属地:云南1楼2025-12-28 18:45回复
    二楼自占


    IP属地:云南2楼2025-12-28 18:46
    回复
      2026-02-02 06:48:18
      广告
      不感兴趣
      开通SVIP免广告
      先放结论:
      经过大量实测,黑死病的死亡率是“固定值53.6%”。
      由此,假设一个地块全体免疫后才恢复,我们可以获得地块死亡人数的估算公式:
      “当地人口*(1-疾病抵抗)*53.6%”。
      也就是说,针对15%抵抗情形,死亡人数大致为45.56%;
      针对30%抵抗情形,死亡人数大致为37.52%
      同时,“腺鼠疫影响”buff会直接给死亡数乘以一个比例,此时死亡人数的估算公式:
      “当地人口*(1-疾病抵抗)*53.6%*(1-腺鼠疫影响buff值)”。


      IP属地:云南3楼2025-12-28 18:52
      回复
        在具体做法上:对于少死人,只有加抵抗和减影响的有用,减缓传播对统治中心的用处不大。
        不修路对市场中心和首都的影响并不大。
        隔离可以让15%的人直接免疫,有用;
        方舱可以让30%的人直接免疫,有用,但是要钱要熏香,熏香不够效果会直接打折。不过方舱+医院有可能直接堆到50%以上防疫,满足最低概率停滞线。
        隔离城市效果很好,可以直接在死亡率上乘一个因子,很有用,不过很贵。
        首都(?还是境内)染疫会导致每个循环有0.16%的概率死君主,躲起来可以减半
        买药没用,封闭国门没用(临近地块,迟早会过来的),粮食市场对少死人没用,宗教大赦负作用,替罪羊补稳定用。


        IP属地:云南4楼2025-12-28 18:55
        回复
          简单解释一下P社特色的传播动力学。
          从各种说明文档和代码里可以拼凑出来,P社特色传播动力学在表面上很类似传染病学中常用的SIRD(易染-感染-恢复-死亡)模型。我刚看代码的时候也被P社搞得几个概念给唬到了,以为P社真搞了个极复杂时间-空间传染病模拟网络(其实并非)
          让我们把上述概念对应到游戏里。
          “感染者”:感染者数量其实就是本地人口数*疾病存在;12516*0.3542=4433人
          “免疫者”:类似地,免疫者数量其实就是本地人口数*疾病抵抗;12516*0.5827=7293人

          “死亡者”:游戏中的“死于疫病”人数就是本次疫情循环的死亡者。


          IP属地:云南5楼2025-12-28 18:57
          回复
            对于黑死病,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、相邻地块
            """
            这就导致了一个问题:首都和市场中心所接受的外源病例数非常恐怖。


            IP属地:云南6楼2025-12-28 19:01
            回复
              以下的例子有助于建立一个感性认知:
              如图,布尔萨的感染者人数暴涨。根据上述说法,显然是外源性疫情导致的:


              这种抽象的强行输入机制让现实中主要目标在于减小感染率以平抑病例数曲线的做法变得毫无意义(仅指对首都和市场中心,但是黑死病来的时候玩家一般也只有首都一座中心城市)。
              虽然P社贴心地设置了50%以上疾病存在(感染者占50%)以上的地块不会接受外源性传染,这个设置没什么意义。急促地上到50%感染者后,内部感染完全可以很快把人全部洗成感染者

              如此,理论上需要全部感染一遍,让一个地块全是免疫者,才能让一个地块对黑死病免疫。实际情况下,由于“停滞”机制和可能的“变回易感者”的比例(经常出现少量感染者变为易染者,但未知原因),可能有一点点偏差。
              在黑死病末期,没有地块达到30%感染者或15%感染者的外源阈值,传播主要依靠内源。而“停滞”机制会使得一个地区在抵抗较高时,R0值下降,内源传播降低,最终被消除。
              【有时候地块存在会突然从个位数百分比直接变成0,不清楚这是什么导致的。】


              IP属地:云南9楼2025-12-28 19:06
              回复
                以下是模型猜想和数值测算的过程。


                IP属地:云南10楼2025-12-28 19:07
                回复
                  2026-02-02 06:42:18
                  广告
                  不感兴趣
                  开通SVIP免广告
                  传播模型:
                  1.为什么猜想是内源+外源?
                  因为时空传播动力学模型都是这样的()P社没理由放着现存的模型不抄。
                  2.内源传播的猜测:
                  根据游戏文件夹里对R0的介绍:
                  “the R0 number of the disease, or how many people one person will spread the disease to per interval”(疾病的R0值是一次区间中一个人的传播数)
                  猜测感染者增加量是R0*上次感染者数。
                  同时,关于“命运决定比”的介绍:
                  “percentage_to_meet_their_fate_on_calc: script value for how many of the affected should have their fate decided (live and become resistant, or die)”(决定多少感染者进入 存活并抵抗或死亡的比例)
                  该值对黑死病是常数0.25,从而感染者减少量是转化为死亡者或免疫者的数量,也就是上次感染者数*0.25
                  从而可以猜测内源传播量是:R0*上次感染者数-0.25*上次感染者数
                  3.外源传播的猜测:
                  在观察中发现,黑死病局势发生的第一个月,所有被传播地产生的感染者数量是一样的。猜测外源传播数量与接受地无关,而仅仅与出发地有关。从计算性能和瑞典蠢驴的大脑发育程度出发,大概率是个线性比例。


                  IP属地:云南11楼2025-12-28 19:09
                  收起回复
                    相邻地块传播太狠了,基本上只要瑞典,英国这些岛国关市场后有希望挡住。


                    IP属地:北京来自Android客户端12楼2025-12-28 19:09
                    收起回复
                      4.外源传播模型的验证:经过多轮验证,以下仅选择其中一轮。
                      固定R0量为1.2(非平凡常数因子),设定传播感染者阈值为80%。这样,第一次传播为仅外源传播,第二次传播时,由于来源地死人,感染者率会掉到80%以下,因而为仅内源传播。
                      以金帐汗国为例。调整了局势时间,实测这一调整没有影响。:
                      6月1日,黑死病在萨赞拜爆发,初始感染者为3850*85.02%=3273人,预测感染者外传数3273*9%=294.57人

                      6月2日,黑死病第一轮传播:

                      可以计算,感染者为21606*1.36%=293.84人,与预计的294.57人在误差范围内.。
                      对临近地凯拉克特进行验算:4017*7.33%=294.44人。
                      对市场中心萨赖朱克进行验算:11608*2.53%=293.68人。


                      经过额外测试,R0值对这一感染量无影响(不再赘述)。
                      但是在其它情形下,9%的比例并不太准。 猜测可能城市传出和集镇传出还有一个乘数,不过懒得再试了()


                      IP属地:云南13楼2025-12-28 19:11
                      回复
                        5.内源传播模型的验证:
                        6月27日,发生第二轮传播。由于6月2日的第一轮迭代中传播源存在掉到80%以下,不再外源传播。
                        固定R0=1.2的情况下,预计这一轮迭代后的感染者为:上一轮感染数+1.2*上一轮感染数-0.25*上一轮感染数=1.95*上一轮感染数
                        以萨莱为例:预计293.84*1.95=572.988,实际21567*2.66%=573.6822,大致在误差内。

                        再验证凯拉克特:预计294.44*1.95=574.158人
                        实际3977*14.44%=574.2788人


                        IP属地:云南14楼2025-12-28 19:12
                        回复
                          6.综合验证:
                          此时把外源传播限制调整成50%,重新开档。这样第一轮是仅外源传播,第二轮及以后是内外源混合传播。
                          为确保普遍性,这次随便挑一个时间计算。
                          在这一轮,萨莱感染者有21324*17.1%=3646.4人,
                          预计内源为0.95*3646=3463.7人

                          符合外源传播条件的有:拜塔克3624*68.65=2487.8人
                          伊列克3798*65.51%=2488人
                          乌伊尔1846*75.01%=1384.7人
                          沙吉兹2163*75.01%=1622.5人
                          沙特尔雷赛1916*75.01%=1437人
                          阿特扎克瑟1655*75.01%=1241.4人
                          恩巴3322*75.13%=2495.8人
                          预计外源为13157.2*0.09=1184.148人
                          预计下一轮感染者为3646.4+3463.7+1184.148=8294.248人
                          在下一次传播后:

                          感染者为20836*39.54%=8238.5544人,与预计值8294.248人有一定差距,但误差不大。


                          IP属地:云南15楼2025-12-28 19:13
                          回复
                            7.死亡率
                            死亡率:488/(3646.4*0.25)=53.5322%。
                            这个值在纯净环境下(验证游戏完整性后),多个国家,多个时间点,甚至多个设备上做过验证。


                            IP属地:云南16楼2025-12-28 19:14
                            收起回复
                              2026-02-02 06:36:18
                              广告
                              不感兴趣
                              开通SVIP免广告
                              @善良的小z 可否加个精,如果有更详细的黑死病解析再取消就行()


                              IP属地:云南来自Android客户端20楼2025-12-28 19:28
                              收起回复