用.NET写疫情传播仿真程序
前一阵子看到有人制作了《疫情传播仿真程序》,是用Java做的。里面根据多种实际情况,如居民移动意愿、医护能力、病毒传播能力,来模拟疫情的发展。看完之后,我暗暗称奇,特别是结合一些视频和照片,确实做得非常好。
既然有需要,2月6号那天晚上我决定说干就干,经过两个晚上的思考与编码,已经有了初步效果……运行效果如下:
这个效果可以这样解读,如果不加以任何控制,疫情会很快蔓延到整个城市,只有8:1000床位的城市,将很快失去控制,一年后运行效果如下(非常惨烈):
参数与使用
代码中实际有很多参数可以操作:
static double MoveWilling = 0.90f; // 移动意愿,0-1
static bool WearMask = false; // 是否戴口罩
static int HospitalBeds = 40; // 床位数
const float InffectRate = 0.8f; // 靠得够近时,被携带者感染的机率
const float SecondsPerDay = 0.3f; // 模拟器的秒数,对应真实一天
const float MovingDistancePerDay = 10.0f; // 每天移动距离
const int InitialInfectorCount = 5; // 最初感染者数
const double DeathRate = 0.021; // 死亡率
// 要靠多近,才会触发感染验证
static float SafeDistance() => WearMask ? 1.5f : 3.5f;
// 住院治愈时间,最短5天,最长12.75天,平均约7天
static float GenerateCureDays() => random.NextFloat(5, 12.75f);
// 潜伏期,1-14天
static float Generat

该博客介绍了一个用.NET编写的疫情传播仿真程序,通过调整各种参数,如居民移动意愿、戴口罩行为、医院床位数量等,模拟疫情的发展过程。结果显示,任何单一措施都无法完全控制疫情,综合防控才是关键。
最低0.47元/天 解锁文章
573

被折叠的 条评论
为什么被折叠?



