博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模拟一个实验室的机器网络(M行N列的矩阵)被病毒感染的过程(熊猫烧香)
阅读量:7240 次
发布时间:2019-06-29

本文共 1670 字,大约阅读时间需要 5 分钟。

《数据结构》课程设计报告书(地址:)

 

1、设计要求:
           模拟一个实验室的机器网络(M行N列的矩阵)被病毒感染的过程,每台机器只和它相邻的机器直接相连。开始时有T太机器被感染,每台遭遇的熊猫变种类型都不同,分别记为Type1,Type2,……TypeT。每台机器都具有一定级别的防御能力,记为L(0
<1000)。
    2、病毒的传播规则:
      (1)病毒只能从一台被感染的机器传到另一台没有被感染的机器。
      (2)如果一台机器已经被某个变种的病毒感染过,就不能再被其他变种感染。
(3)病毒的传播能力每天都在增强。以D代表病毒的攻击等级,初始值为1,每天增加1,可以感染所有可以到达的防御级别小于病毒自身攻击级别的机器。当L大于D的时候可以组织病毒从自己处继续传播。
(4)同一天内,由1号变种病毒先开始传播,感染所有它可能感染的机器,然后Type2、Type3……依次经行传播。
    3、程序的要求:
(1)输入要求:
输入由若干组测试数据组成。
每组数据的第一行包含2个整数M和N(1=
<500),接下来是一个M*N的矩阵表示网络的初始感染状态,其中的正、负整数的意义如题目描述中所定义。
下面一行给出一个正整数Q,是将要查询的变种的个数。接下去的Q行里,每行给出一个变种的类型。
当M或N为0时,表示全部测试结束,不要对该数据做任何处理。
(2)输出要求:
对每一组进行测试,在一行里输出被某个特定变种所感染的机器的数量。
 
(3)输入输出例子:
  输入:
3 4
1 -3 -2 -3
-2 -1 -2 2
-3 -2 -1 -1
2
1
2
0 0
输出:
9
3

1、实验任务与目的(简单介绍实验内容,说明实验任务和目的)

“熊猫烧香”是在网络中传播的一种著名病毒。现在某实验室的网络不幸感染了这种病毒。从教材P126的图6.5可以看到,实验室的机器排列为一个M行N列的矩阵,每台机器只和它相邻的及其直接相连。开始时有T台机器被感染,每台遭遇的熊猫变种类型都不同,分别记为Type1,Type2,…..,Typer。每台机器都具有一定级别的防御能力,将防御级别记为L(0<L<1000)。“熊猫烧香”按照下列规则迅速在网络中传播:

(1)病毒只能从一台被感染的及其传到另一台没有被感染的机器;

(2)如果一台机器已经被某个变种的病毒感染过,就不能再被其他变种感染;

(3)病毒的传播能力每天都在增强。第1天,病毒只能感染它可以到达的、防御级别为1的机器,而防御级别大于1的机器可以阻止它从自己处继续传播。第D天,病毒可以感染它可以达到的、防御级别不超过D的机器,而只有防御级别大于D的机器可以阻止它从自己处继续传播。

(4)同一天之内,Type1变种的病毒先开始传播,感染所有它可能感染的及其,然后是Type2变种、Type3变种…….依次进行传播。

  实验要求是:当整个网络被感染后,计算有多少台机器被某个特定变种所感染。

【输入要求】

程序的输入数据由input.txt文件读入,文件包含若干组测试数据。每组数据的第1行包含2个整数M和N(1≤M,N≤500),接下来是一个M*N的矩阵表示网络的初试感染状态,其中用负整数-L表示未被感染、防御级别为L的机器,正整数Typei表示该机器被Typei类型的病毒变种感染。

下一行给出一个正整数Q,是将要查询的变种的个数。接下去的Q行里,每行给出一个变种类型。

当M或N为0时,表示全部测试结束,不要对该数据做任何处理。

【输出要求】

对每一组测试,在一行里输出被某个特定变种所感染的机器数量,并测试结果写入output.txt文件。

本实验训练的内容包括六个方面:

(1)面向对象程序设计方法,类模板的应用;

(2)采用合适的求解问题算法,如广度优先搜索、Dijkstra算法、并查集等;

(3)矩阵存储;

(4)文件的读写操作;

(5)程序测试计划、用例的设计和测试方法。

转载地址:http://thybm.baihongyu.com/

你可能感兴趣的文章
Python基础1
查看>>
(二)整合spring cloud云服务架构 - particle云架构
查看>>
小程序开发工具全新上线
查看>>
深度学习的异构加速技术(一):AI 需要一个多大的“心脏”?
查看>>
PYTHON学习0017:集合----2019-6-11
查看>>
PING主机名称不通的解决
查看>>
selenium 获取http页面请求信息状态码
查看>>
LINUX系统编程之IPC
查看>>
今天刚学的c++,两个程序。
查看>>
MBR扇区故障及修复
查看>>
磁盘分区
查看>>
获取jar包路径,遍历
查看>>
solidity智能合约[40]-memory属性
查看>>
【VMware vSAN 6.6】5.1.基于存储策略的管理:vSAN硬件服务器解决方案
查看>>
javascript基础修炼(10)——VirtualDOM和基本DFS
查看>>
ISTP论文发表 SCI论文发表 EI论文发表常识
查看>>
怎样轻松几步将视频转换成GIF
查看>>
离线批量数据通道Tunnel的最佳实践及常见问题
查看>>
ECS应用管理最佳实践
查看>>
12.throw和throws是的区别
查看>>