病毒扩散模型
现代计算机蠕虫病毒传播途径多样化,除了利用移动介质如U盘等传播外,还可以
通过邮件、网页挂马、聊天工具、文件传输等多种方式传播,一些病毒甚至可以利用系统的某些漏洞自动进行传播。中毒的主机会自动搜索可以被感染的主机,并将
蠕虫病毒扩散开来。一台没有安装系统补丁、无安全防护软件的计算机连接到internet上,即使用户不做任何操作,只要网络是通的,在5分钟之内几乎必
定会感染上蠕虫病毒。下图是一个著名的病毒--红色代码在某天内传播感染计算机的情况。
红色代码病毒的传
播图
各种
各样的蠕虫病毒在Internet上进行传播,大量的主机被感染,新的病毒又在不断出现。这种现象与人类社会所面临的传染病流行的情形类似。它们都可以用
一个简单的数学模型来描述。
式中N
是表示所有的可能被感染的群体数量,
是已经被感染上病毒的个体所占的比
例,K
是一个常数,表示在一个时间段内某个病毒携带者(或感染病毒的计算机)能够传染其他的个体数
量。对于一个足够小的时间
,新增加的被感染个体数
等于已经感染的数量
和可被感染的
的乘
积。这是一个微分公式。
我们往往关心的是被感染的主机比例
随着时间的增长变化的情况。对上面的
公式积分后得到如下的结果:
这个式子中的T
是一个积分常量,代表病毒的爆发期时刻。如下图的示例,传染能力(即在一段时
间内一台感染病毒的个体可以再感染的主机的多少)的度量值K=2.6。病毒的爆发期时间T=5.52。在5.52小时之前,病毒的传播速度还比较慢,接近
该时刻后,病毒感染了大量的主机,并且传播的速度也越来越快,最后几乎感染了所有的主机,再传播的速度也开始变慢了。前面红色代码病毒的传播图也表明了这
个特点。这个公式有一个著名的名称:罗杰斯特方程(logistic equation
)。
logistic equation
参考文献:
一些病毒传播的动画:http://www.caida.org/publications/animations/#security
=====
本题的目的要求你实现logistic方程,对不同的输入参数,计算某些特定时刻的函数值。
输入:
参数K和T,以及用起始时刻ts
,终止时刻te
和
增量dt表示的一个时间区间[ts
,te
)。包含ts
,但不含te
。
输出:
对应各个时刻点的感染个体的比例,用空格进行分隔,每10个数据后换行。最后一行如果不够
10个数据也要换行。(补充:可能出现(t
e
-t
s
)/dt不是整
数的情形,要注意是否应该取最后那个点
)
输出数据请采用格式化字符串"
%4.3f",即每个数据之前放置一个空格,数据保留小数点后三位有效数字。
样例输入:
2.6□
5.52↵
0□
8□
0.1↵
样例输出:
□
0.000□
0.000□
0.000□
0.000□
0.000□
0.000□
0.000□
0.000□
0.000□
0.000↵
□
0.000□
0.000□
0.000□
0.000□
0.000□
0.000□
0.000□
0.000□
0.000□
0.000↵
□
0.000□
0.000□
0.000□
0.000□
0.000□
0.000□
0.001□
0.001□
0.001□
0.001↵
□
0.001□
0.002□
0.002□
0.003□
0.004□
0.005□
0.007□
0.009□
0.011□
0.015↵
□
0.019□
0.024□
0.031□
0.040□
0.052□
0.066□
0.084□
0.106□
0.133□
0.166↵
□
0.206□
0.251□
0.303□
0.361□
0.423□
0.487□
0.552□
0.615□
0.674□
0.729↵
□
0.777□
0.819□
0.854□
0.884□
0.908□
0.927□
0.943□
0.956□
0.965□
0.973↵
□
0.979□
0.984□
0.987□
0.990□
0.993□
0.994□
0.996□
0.997□
0.997□
0.998↵
注意:(循环变量应使用整数类型)
import java.util.Scanner;
public class logistic {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double K = scanner.nextDouble();
double T = scanner.nextDouble();
int t1 = scanner.nextInt();
int t2 = scanner.nextInt();
double dt = scanner.nextDouble();
double a;
int len = 0;
for(int i=0;(t1+i*dt)<t2;i++){
a = Math.exp(K*((t1+i*dt)-T))/(1+Math.exp(K*((t1+i*dt)-T)));
System.out.printf(" %4.3f",a);
len++;
if(len==10){
System.out.println();
len = 0;
}
}
if(len != 0){
System.out.println();
}
}
}
分享到:
相关推荐
基于传染病动力学的网络病毒扩散模型构建的方法.docx
网络游戏-基于传染病动力学的网络病毒扩散模型构建的方法.zip
本文主要以某种传染病疫情为例,利用微分方程来研究和讨论一般传染性病毒扩散与传播的的控制模型。 模型一:针对问题一,本文在考虑人群分为五类:确诊患者、疑似患者、治愈者、死亡和正常人前提下,建立传染性病毒...
我们找出单位时间内正常人数的变化、单位时间内潜伏期病人数的变化、单位时间内确诊患者人数的变化、单位时间内退出的人数的变化、单位时间内疑似患者人数的变化等关系建立微分方程模型,得到病毒扩散与传播的控制...
基于计算机病毒可以通过可移动存储设备传播和P2G网络病毒传播的特点,提出了带可移动存储设备的P2G网络病毒传播模型。利用微分动力学系统理论分析发现该模型只存在唯一的有病毒平衡点,这意味着网络中的病毒将无法...
我们自己写的论文,大家参考参考,可能很烂就是!!!
一类SEI传染病扩散模型及其移动边沿,刘江,朱林涛,本文研究一类SEI传染病模型,其中病毒在潜伏期和感染期具有感染性。首先研究固定区域上SEI偏微分方程组,考虑平衡解的局部稳定性和
病毒扩散仿真程序火了,其实模型很简单! - 51CTO.COM.pdf
手机病毒传播模型.pdf <br> <br>大家如果觉得好,可以到我站来看看。 email:kelonre@tom.com<br>msn:kelonre@tom.com<br>QQ:53163108 (请注明申请斑竹字样) 本站QQ群号:31686490;12647825(新群) 本站...
MATLAB源码集锦-复杂网络研究中的一个病毒传播模型代码
基于元宝自动机,用matlab实现,在药物治疗的情况下,病毒扩散的规律。改变药物和疫苗的作用效果,直观展示扩散分布情况。
基于python开发的病毒扩散仿真程序+开发文档说明+视频数据,适合期末作业、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于python开发的病毒扩散仿真程序+开发文档说明+视频...
手机病毒传播的相关很好的资料。手机病毒传播的相关很好的资料。
病毒进化优化对计算机或生物病毒在网络系统中的扩散过程进行研究,是在有限网络资源情况下对病毒进化速度进行控制和研究网络用户如何被感染的行为。病毒进化优化通过连通图上的动态概率系统来建模,传统的病毒进化...
SIS病毒模型
元胞自动机实现病毒扩散过程,直观展示其动态扩散时刻的分布情况
在对病毒恶意行为进行简要分析后,将状态跳转法应用到病毒的行为监测,提出基于概率训练的病毒检测模型。给出单个恶意行为和连续恶意行为病毒概率训练的具体方法,分析病毒概率阈值训练的过程,以此实现病毒判断算法...
NetLogo模拟SEIR病毒传染模型,默认e状态不传染,r状态不会被再次感染,有记录数量变化的图
基于Netlogo的计算机网络病毒传播模型SIRH及仿真.pdf