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病毒,它会严重影响因特网的效率。