病毒扩散模型(Java)

病毒扩散模型

现代计算机蠕虫病毒传播途径多样化,除了利用移动介质如U盘等传播外,还可以 通过邮件、网页挂马、聊天工具、文件传输等多种方式传播,一些病毒甚至可以利用系统的某些漏洞自动进行传播。中毒的主机会自动搜索可以被感染的主机,并将 蠕虫病毒扩散开来。一台没有安装系统补丁、无安全防护软件的计算机连接到internet上,即使用户不做任何操作,只要网络是通的,在5分钟之内几乎必 定会感染上蠕虫病毒。下图是一个著名的病毒--红色代码在某天内传播感染计算机的情况。

CodeRed Spreads

红色代码病毒的传 播图

各种 各样的蠕虫病毒在Internet上进行传播,大量的主机被感染,新的病毒又在不断出现。这种现象与人类社会所面临的传染病流行的情形类似。它们都可以用 一个简单的数学模型来描述。

diff

式中N 是表示所有的可能被感染的群体数量,alpha 是已经被感染上病毒的个体所占的比 例,K 是一个常数,表示在一个时间段内某个病毒携带者(或感染病毒的计算机)能够传染其他的个体数 量。对于一个足够小的时间dt ,新增加的被感染个体数Nda 等于已经感染的数量Na 和可被感染的K(1-a) 的乘 积。这是一个微分公式。

 

我们往往关心的是被感染的主机比例\alpha 随着时间的增长变化的情况。对上面的 公式积分后得到如下的结果:

model

这个式子中的T 是一个积分常量,代表病毒的爆发期时刻。如下图的示例,传染能力(即在一段时 间内一台感染病毒的个体可以再感染的主机的多少)的度量值K=2.6。病毒的爆发期时间T=5.52。在5.52小时之前,病毒的传播速度还比较慢,接近 该时刻后,病毒感染了大量的主机,并且传播的速度也越来越快,最后几乎感染了所有的主机,再传播的速度也开始变慢了。前面红色代码病毒的传播图也表明了这 个特点。这个公式有一个著名的名称:罗杰斯特方程(logistic equation )。

spread

logistic equation

参考文献:

如何在你的空闲时间 占领整个互联网:How to 0wn the Internet in Your Spare Time

一些病毒传播的动画: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();
		}
	}
}
 
扩散模型在社交网络分析中的实际应用案例 扩散模型是一种数学和计算模型,用来描述在网络中信息、观点或行为如何从一个节点传播到另一个节点的过程。独立级联模型(Independent Cascade Model):假设每个节点以一定的概率传播信息给其邻居节点,可用于模拟病毒传播或信息在社交网络中的传播。线性阈值模型(Linear Threshold Model):假设每个节点有一个阈值,只有当其邻居节点中达到一定比例时才会传播信息,可用于模拟产品营销或社交影响力。 阅读详情

相关推荐

病毒扩散与传播的控制模型

本文基于传统的传染病模型,以微分方程的方法作为理论基础,结合采取的措施不同的情况,用MATLAB软件拟合出患者人数与时间的曲线关系,从中得出应采取的相应的应对措施。 在考虑地区总人数不变,人群被分为五类:确诊患者、疑似患者、治愈者、死亡和正常人,再将这几类分为可传染性和不可传染性两种。我们找出单位时间内正常人数的变化、单位时间内潜伏期病人数的变化、单位时间内确诊患者人数的变化、单位时间内退出的人数的变化、单位时间内疑似患者人数的变化等关系建立微分方程模型,得到病毒扩散与传播的控制模型。 在此基础上,我们将所要求的问题带入模型得到患者人数随时间变化的曲线图,根据这图形得出模型结果的变化。这样一来就可根据这结果的变化得出相应的应对措施。 此外对该传染病的潜伏期及治愈期进行了灵敏度分析,发现潜伏期的变化会对整个模型的结果产生较大影响,而治愈期的变化只会使传染病的持续时间缩短,但对累积的患病人数影响不大。 应尽量避免患者与正常人接触,减少正常人患病的可能性;加大隔离措施强度;减少拖延患者去住院的时间,让患者及时住院治疗。养成良好的卫生习惯,保证科学睡眠,适当锻炼,减少压力,保证营养,增强个人抵抗力,降低被病毒感染的危险。

SEIIRF模型(病毒的扩散与传播模型,药物分发问题)

一.病毒的扩散与传播模型 适用于病毒已经发展到中后期,每个箱子都具有一定人数的情况。 提出假设 (与现实情况相违背):不考虑出生率等等。 对题目进行分析,画出如下图所示的箱子。 做以下考虑: 箭头存在/不存在,分析原因。 箭头粗细大小,哪个比重更大。 根据图列出微分方程: 注:两个分支箭头的情况用分级参数与大转化率相乘。 求解参数 二.药物分发点确定模型(控制问题) (关键在于列出min和max式子): 公平性原则下: 每个地点都有箭头,且所有距离加起来最小。(无考虑村落本身的人数多少等其他经

Youthenen的博客 1933

关于病毒扩散与传播的控制模型

本文主要以某种传染病疫情为例,利用微分方程来研究和讨论一般传染性病毒扩散与传播的的控制模型。 模型一:针对问题一,本文在考虑人群分为五类:确诊患者、疑似患者、治愈者、死亡和正常人前提下,建立传染性病毒扩散与传播的控制模型,即控制后模型。 针对问题二,在模型一的基础上且满足问题中的四个条件要求对问题二进行模拟求解,患者人数随时间变化的曲线见图1明确标识图中的一些特殊点的具体数据,并且分析结果的合理性。 针对问题三,在问题二的基础上,对问题二的条件4作微调之后进行模拟求解具体求解见图2。 针对问题四,在问题二的基础上,对问题二的条件3作修改之后进行模拟求解,模拟结果见图3。 针对问题五,在问题二的基础上,仅对问题二的条件1改动之后进行模拟求解,模拟结果见图4。 针对问题六,在模型一的大前提下,对问题二的四个条件作单变量调整并得出模拟结果图,通过对各个结果的分析,本文得到参数对计算结果的敏感性。 针对问题七,依据如上数据,模型的求解和参数的敏感性分析,本文结合实际情况给政府部门一个建议报告。

新型冠状病毒传播规律离散微观模型(结果与实际情况一致)-附源码

一个简单的新型冠状病毒传播离散微观模型内容1、模型1.1 个体病毒感染概率计算模型1.2 个体病毒感染概率计算模型1.3 求解过程1.4 基于Python的求解过程 内容 年关将近,和以往不同的年货、团年、探亲,今年最火的尽然是新型冠状病毒肺炎,身边所有的人最关注的莫过于其扩散情况,老裴也不例外,一直想做点什么。关于病毒传播模拟,专业模型都是基于连续的常微分方程模型,该种模型理论性强、模型简单、一...

Iplay4FuN的博客 1万+

病毒扩散仿真程序火了,其实模型很简单! - 51CTO.COM.pdf

病毒扩散仿真程序火了,其实模型很简单! - 51CTO.COM.pdf

SARS病毒传播数学建模模型

数学模型SARS病毒传播数学建模模型 优秀论文是什么很好的

java编写蠕虫病毒_教大家编写蠕虫病毒

教大家编写蠕虫病毒(2009-04-13 14:16:08)标签:杂谈自从进入07年以来 偶一直点背的透不过气! 很郁闷~ 死的心都有!!不知道应该做些什么/怎么做才是对的! 很彷徨````````不说了进入正题~Hello,My Name Is Unhacker QQ:80018141 (c) 2007 WoRmI don't take responsibility for any damage...

weixin_34318945的博客 1769

大气扩散模型JAVA代码

大气扩散模型代码,结合了风速、浓度等参数计算。

罗杰斯特回归

1. 罗杰斯特回归(Logistic)函数 hθ=g(θTx)=11+e−θTxhθ=g(θTx)=11+e−θTxh_\theta=g(\theta^Tx)=\frac{1}{1+e^{-\theta^Tx}} 2. 罗杰斯特回归最基本的学习算法是最大似然法 设共有nnn个独立的训练样本,其中n1n1n_1个属于w1w1w_1类,n2n2n_2个属于w2w2w_2类,将两类的输出分别编码为...

莫大逗比嘟嘟 7516

浅谈IC测试向量(pattern)及其转换

随着集成电路的飞速发展,其规模越来越大,对电路的质量与可靠性要求进一步提高,集成电路的测试方法也变得越来越困难,为了实现芯片的快速测试和筛选,ATE设备为其提供了强有力的支撑。ATE运用芯片设计仿真文件,将其作为芯片输入激励,通过ATE测试平台提供芯片测试环境,将芯片的输出和测试结果进行比较,以此来判定芯片的好坏。 说起IC测试,不得不说一下Pattern这个词,它中文的意思是模式。在图像处理中,这个词意思为图像的纹理特征,而在IC也即芯片测试行业,这个词实际上代表了需要测试芯片的时序特征。简单的说,在测

flomingo1的专栏 1万+

以高通camera 申请ion内存看dma-buf

1 fd 与ion buffer, file绑定 简单总结就是申请一个buffer,再创建一个dmabuf 结构体然后将,然后将dmabuf中得指针指向buffer,dmabuf 再传递给一个匿名的inode,获取到一个file,这样file和dmabuf绑定起来,也就和buffer关联上。然后再从进程中分配一个空闲的fd,将fd 和file囊绑定。这样就能通过fd 快速查找到buffer。file 是个全系统的,他和进程无关,但是fd 是每个进程都是自己独立的,所以再跨进程传输时只需要保证fd ...

兔兔里个花兔的博客 6444

用Java程序仿真模拟病毒传播过程(已开源)

无知和弱小不是生存的障碍,傲慢才是。《三体》最近,在Github上面有一个VirusBroadcast开源项目,它利用Java程序仿真模拟了冠状病毒的传播过程「理想状态下」。正如作者...

singwhatiwanna 4175

保姆级教程如何进行本地局域网布署openclaw小龙虾

全网唯一一篇一步步实战教程,图文并茂方式的方式教你如何本地部署安装小龙虾openclaw

zzw17wei的专栏 1467

java模拟病毒传染_模拟细菌(病毒)传播(java作业)

学习java到现在差不多11天了,老师留了个作业,模拟病毒复制:1.如果病毒周围有其他的病毒,并且有空气,则病毒繁殖到空气的位置上;2.如果病毒周围全是病毒,则病毒会因为呼吸不到空气死亡;3.如果病毒周围全是空气,则病毒会因为孤独至死。下面具体实现:新建一个Germ类:/*** @(#)germ.java*** @author LiuJie* @version 1.00 2007/4/13*/p...

weixin_39855568的博客 545

Dify社区版多工作空间功能解锁:源码修改与多租户架构解析

多租户架构是现代SaaS平台实现数据隔离与资源管理的核心技术,其核心原理是通过租户模型将用户、应用和数据在逻辑上隔离。在AI应用开发平台中,这种架构能有效支持多团队、多项目并行开发,确保不同业务线的数据安全与独立迭代。Dify作为开源AI应用构建平台,其底层已设计完善的多租户模型,但社区版默认限制了单用户单工作空间。本文通过精准修改两处关键代码——账户初始化逻辑与系统功能开关,释放了平台固有的多工作空间管理能力。该方案无需改动数据库结构,直接利用现有RBAC权限体系,实现了类似企业版的**多租户隔离**体验

weixin_27059669的博客 1062

【MATLAB代码】蚁群算法(Ant Colony Optimization, ACO)路径规划(避障)仿真程序,订阅专栏后可直接查看完整源代码

基于蚁群算法的路径规划系统。可自定义起点、终点和障碍物地图,系统通过蚁群算法自动计算最优路径,并输出路径坐标、障碍物地图和收敛曲线。完整MATLAB源代码直接运行。适用于复杂障碍环境下的路径优化问题。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 3091

第五次作业病毒扩散模型NO.3

现代计算机蠕虫病毒传播途径多样化,除了利用移动介质如U盘等传播外,还可以通过邮件、网页挂马、聊天工具、文件传输等多种方式传播,一些病毒甚至可以利用系统的某些漏洞自动进行传播。中毒的主机会自动搜索可以被感染的主机,并将蠕虫病毒扩散开来。一台没有安装系统补丁、无安全防护软件的计算机连接到internet上,即使用户不做任何操作,只要网络是通的,在5分钟之内几乎必定会感染上蠕虫病毒。下图是一个著名的病毒

黄昏落幕,寂寞上演;芳华似在,心已沧桑 1350

手把手教你学veriolg(二十六)-- Verilog CIC 滤波器设计

目录 Verilog CIC 滤波器设计1. CIC 滤波器的基本原理2. Verilog 实现3. 说明4. 测试激励5. 总结 CIC(Cascade-Integrator-Comb)滤波器是一种特殊的数字滤波器,常用于多速率信号处理中,尤其是用于信号的上采样(插值)和下采样(抽取)。CIC 滤波器的特点在于它具有简单的硬件实现、不需要乘法器(仅使用加法器和延迟元件)、且具有线性相位特性。然而,CIC 滤波器的缺点是它会产生较大的量化误差,因此在设计时需要特别注意字长的选择以避免溢出。1. CIC 滤波

MHD0815的博客 890

多源BFS算法解析:从疫情扩散到网格最短路径问题

广度优先搜索(BFS)是图论中的基础算法,其核心原理是通过队列实现层序遍历,确保首次访问节点时路径最短。这一特性使其在求解最短路径、连通性分析等场景中具有重要技术价值。在工程实践中,BFS常被应用于网格化问题,如计算多点扩散的最短时间或距离。本文以经典的“疫情扩散时间”问题为例,深入剖析多源BFS的实现细节,涵盖队列操作、层序遍历固定、状态标记等关键技巧,并对比C++、Java、Python、JavaScript四种语言的实现差异。通过结合华为OD机试真题,文章进一步探讨了BFS在算法面试中的常见变体,如腐

weixin_29309213的博客 247

多模态轨迹预测:行人、车辆的交互式推理

多模态轨迹预测:行人、车辆的交互式推理 ,人工智能,计算机视觉,大模型,AI,本文围绕多模态轨迹预测中行人与车辆的交互式推理展开,介绍了其定义,即综合多种信息预测交通参与者未来多种轨迹。涵盖基础概念如轨迹表示、模态、交互关系,技术框架包括数据处理、特征提取、预测模型(物理、机器学习、深度学习模型等)及结果评估。还探讨了交互式推理方法、面临的不确定性处理等挑战、应用场景、未来发展方向、相关工具及实际案例,展现了该技术在智能交通等领域的重要性与发展潜力。​

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 14万+

OpenCV实战之人脸美颜美型(八)——大眼(上)

从大众审美的角度来看,眼睛适当的“变大”会让人显得更加年轻。因此美型中就有一项大眼功能,其效果就是让眼睛适当变大,这章内容就围绕着大眼算法展开。

On my way 1211

hdoj 2065“红色病毒”问题

"红色病毒"问题 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5371    Accepted Submission(s): 2237 Problem Description 医学界发现的新病毒因其蔓延速度和Inter

Calm微笑 444

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

HDU 2065 "红色病毒"问题 (泰勒级数推导)(快速幂)

"红色病毒"问题 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5698    Accepted Submission(s): 2382 Problem Description 医学界发现的新病毒因其蔓延速度和Inter

huatian5的博客 1022

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

HDU 2065 "红色病毒"问题 ( 泰勒级数推导 )

"红色病毒"问题 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 6023    Accepted Submission(s): 2539 Problem Description 医学界发现的新病毒因其蔓延速度和Interne

LzyRapX 860

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

AI生成病毒序列?理解技术边界与工程验证的真正价值

生成式AI在生命科学领域的应用正引发广泛讨论,尤其是当新闻报道将“AI设计病毒序列”简化为“AI制造病毒”时,技术真实性与公众认知之间产生了巨大落差。要理解这一现象,需要回归AI技术的底层能力:从蛋白质结构预测到序列生成模型,再到基于扩散模型的设计工具,AI本质上是在扩展科研人员的搜索空间,而非替代湿实验与伦理审查。这种“数据—模型—部署”的工程链路中,验证闭环与安全护栏成为决定性环节。无论是处理FASTA序列分析、构建保守位点识别流程,还是评估双用途研究的合规边界,AI开发者的核心任务始终是提升系统的可解

weixin_34121304的博客 314

java第五次作业

1.假帐克星-- Benford's Law 输入: 数据文件(filesize.txt,某文件存储设备上各种文件的尺寸),里面包含很多整数数据,每个数据占一行。 输出: 数字1-9打头的数据所占的比例。为了便于自动检查结果。请使用格式化输出,格式化字符串为 "%d: %6.1f%%\n" 其中第一个参数为数字1-9,第二个参数为对应的百分比。 public cl

VirusFu的专栏 2111
上一篇: Benford's Law--本福特定律
下一篇: 用Java实现月历输出
avanry
博客等级 码龄20年 4粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值