KikiLetGo / VirusBroadcast

A java virus broadcast simulation
1.66k stars 574 forks source link

关于潜伏期时间的模拟 #26

Open Godofbush opened 4 years ago

Godofbush commented 4 years ago

固定时间似乎不是一个好的方案,这次疫情的潜伏期一般为 3 到 7 天,最长不过 14 天。

Java 我不熟,就自己移植了一个 Javascript 版本,修改了一下潜伏期的模拟方法,可以参考一下:

const SHADOW_TIME_GEN = (function* () { while(1) { yield getShadowTime() } })();
// 潜伏期主要为 3-7 天
function getShadowTime () {
    let day = 5 + randomGaussion() * 2;
    day = day < 0 ? 0 : day;
    return Math.floor(day);
}

模拟结果还蛮不错的:

// 4993 例模拟结果
{
0: 169
1: 339
2: 702
3: 1118
4: 1492
5: 1453
6: 1109
7: 734
8: 324
9: 115
10: 36
11: 13
12: 1
13: 1
}
GinRyan commented 4 years ago

潜伏期时间的模拟已经在我的代码里加上了,仍然使用了正态分布,已合并。 https://github.com/XellossSei/VirusBroadcast/commit/22fe1b32bd23b7ab73f41b7dd8b1f713beceafe7#diff-7b471ba7f07853de7cb5ccd06e18efd7L221