用java实现传染病模型

Python016

用java实现传染病模型,第1张

import java.util.*

public class TestMath {

public static void main(String[] args) {

int n=11

//每一天对应的此次为得病的,潜伏的,健康的人的数量

Map<Integer,Integer>sicks=new HashMap<Integer,Integer>()

Map<Integer,Integer>unsicks=new HashMap<Integer,Integer>()

Map<Integer,Integer>healthys=new HashMap<Integer,Integer>()

//每一天对应的新增的此次为得病的,潜伏的,健康的人的数量

Map<Integer,Integer>newsicks=new HashMap<Integer,Integer>()

Map<Integer,Integer>newunsicks=new HashMap<Integer,Integer>()

Map<Integer,Integer>newhealthys=new HashMap<Integer,Integer>()

//赋初值

unsicks.put(1, 1)

sicks.put(1, 0)

healthys.put(1, 0)

newunsicks.put(1, 1)

newsicks.put(1, 0)

newhealthys.put(1, 0)

//从第二天开始到第n天的赋值工作

for(int i=2i<=ni++){

int newSick=0

int newUnsick=0

int newHealthy=0

if(i>5){

newSick=newunsicks.get(i-5)//五天前新增的潜伏期的人

}

newUnsick=5*sicks.get(i-1)//前一天的生病的人

if(i>10){

newHealthy=newunsicks.get(i-10)//十天前新增的潜伏期的人,当然,改成五天前生病的人也行

//newHealthy=newsicks.get(i-5)

}

//先对新增的赋值

newsicks.put(i, newSick)

newunsicks.put(i, newUnsick)

newhealthys.put(i, newHealthy)

//每一天的总数量不仅跟新增的有关,还和前一天的有关,

//当然还要减去变成其他状态的人数

sicks.put(i, newSick+sicks.get(i-1)-newHealthy)

unsicks.put(i, newUnsick+unsicks.get(i-1)-newSick)

healthys.put(i, newHealthy+healthys.get(i-1))

}

System.out.println(sicks.get(n))

System.out.println(unsicks.get(n))

System.out.println(healthys.get(n))

}

}

你去测试一下,应该是没问题的,我测试的是第十一天

计算机病毒的传播途径之一是ASIC芯片和硬盘。这是通过不可移动的计算机硬件设备,从而进行病毒的传播。

软盘、磁盘、尤盘也是计算机病毒的传播途径之一。软盘、磁盘、尤盘被称为计算机病毒的寄生"温床",软盘是移动最频繁的存储介质。

通过无线通道和IM进行,传播也是计算机病毒的传播途径。以现在的目前来看,前者的传播途径不具有广泛性,但在未来广泛性会很强的。

计算机病毒的另一个传播途径是通过Internet。现在网络成为了人们生活不可比少的一部分,大家都是通过网络查找信息、传送文件和接收文件等等,这就让病毒乘机出现,通过各种媒介进行病毒的传播,例如:电子邮件、Java

Applets、ActiveXControl、BBS、FTP等等。在这个信息国际化的同时,也让病毒变得国际化了。

预防病毒感染的方法

方法1:购买正版的杀毒软件,而且最好选择知名厂商的产品,因为知名厂商的产品质量比较好,更新病毒库的速度及时,很快就能查杀最新出现的病毒。而且很快您就会发现:购买一款正版的杀毒软件的是非常超值的,因为您得到的回报将远远大于原先的付出。

方法2:从网上下载软件使用时一定要小心,最好到知名的站点下载,这样下载的软件中包含病毒的可能性相对要小一些。

方法3:打开所有的邮件附件时都要三思而后行,不论它是来自您的好友还是陌生人,建议对于那些邮件主题十分莫名其妙的邮件直接删除,因为根据统计,病毒通常就在那些邮件中。

方法4:打开可执行文件、Wo

d文档和Excel前,最好仔细检查,尤其是第一次在您的系统上运行这些文件时,一定要先检查一下。

方法5:对于重要的数据,一定要定期备份;对于十分重要的数据,最好在别的计算机上再备份一次;特别重要的数据,即使进行多次备份也是值得的(我们看过了太多的用户痛心疾首的样子,因此强烈建议您这样做!

方法6:即时升级您的病毒库,保证它随时处于最新的版本,建议每天都升级一次病毒库。

方法7:建议采取如下的安装顺序:操作系统—杀毒软件—其它软件,这样可以最大限度的减少病毒感染的几率。

方法8:上网时尽量打开病毒防火墙。

方法9:及时安装操作系统的补丁程序。

方法10:局域网用户共享文件夹的权限一定要设为只读。

网络蠕虫阶段

1995年,随着网络的普及,病毒开始利用网络进行传播,它们只是以上几代病毒的改进.在非DOS操作系统中,“蠕虫”是典型的代表,它不占用除内存以外的任何资源,不修改磁盘文件,利用网络功能搜索网络地址,将自身向下一地址进行传播,有时也在网络服务器和启动文件中存在。

视窗阶段

1996年,随着Windows和Windows95的日益普及,利用Windows进行工作的病毒开始发展,它们修改(NE,PE)文件,典型的代表是DS.3873,这类病毒的机制更为复杂,它们利用保护模式和API调用接口工作,解除方法也比较复杂。

宏病毒阶段

1996年,随着Windows Word功能的增强,使用Word宏语言也可以编制病毒,这种病毒使用类Basic语言、编写容易、感染Word文档等文件,在Excel和AmiPro出现的相同工作机制的病毒也归为此类,由于Word文档格式没有公开,这类病毒查解比较困难。

互联网阶段

1997年,随着因特网的发展,各种病毒也开始利用因特网进行传播,一些携带病毒的数据包和邮件越来越多,如果不小心打开了这些邮件,机器就有可能中毒;

邮件炸弹阶段

1997年,随着万维网(Wold Wide Web)上Java的普及,利用Java语言进行传播和资料获取的病毒开始出现,典型的代表是JavaSnake病毒,还有一些利用邮件服务器进行传播和破坏的病毒,例如Mail-Bomb病毒,它会严重影响因特网的效率。