资源简介
数学建模2019美赛D题 逃离卢浮宫 代码
模型考虑要素:最短路径,毒气扩散,拥挤度,5层地图,秘密通道,伤亡程度
考虑到知识产权,代码中的数据没有提供,可以提供思路,或作为模板自行编写,代码有足够注释,可以根据Main函数调用不同函数实现不同的模型,代码加注释的总行数大于1200行
代码片段和文件信息
#include
#include
#include
using namespace std;
//元胞自动机
int main()
{
//逃亡人数
int numOfPeople = 30000;
//模拟5层卢浮宫地图
vector > > maps;
//模拟逃亡者
vector people;
//初始化卢浮宫地图
Floor::LoadMapsFromFile(maps);
//初始化第二层的馆号
Floor::IntializeShopId(maps[2]);
//初始化每一个人的初始位置
Person::IntializePosition(people maps numOfPeople);
//根据不同指标计算每块地板的权值
Floor::ComputeFloorWeightByShortestPath(maps);
//初始化毒雾区域
Point p = Floor::IntializeToxicArea(maps);
// Person::IntializeCrowd(maps people);
//得到目前存活的人数
numOfPeople = people.size();
//记录秘密通道有没有开启,模型中设定为三个
bool hasSecretDoors[3] = {false false false};
//2层每个馆开启秘密通道时人数所需达到的阈值
int thresholds[3] = {100 3000 4000};
//steps 目前走的步数
//tempSteps 前后逃离卢浮宫两人之间相隔的步数
int steps = 0 tempSteps = 0;
//left 剩余未逃离人数
int left = numOfPeople;
int numOfDeath = 0;
int numOfSevereInjury = 0;
int numOfSlightInjury = 0;
do
{
for(int i = 0; i < 3; ++i)
{
//如果2层的某个馆达到人数阈值,并且还没有开启秘密通道,就打开秘密通道
if(Floor::shopNum[i] >= thresholds[i] && !hasSecretDoors[i])
{
Floor::ShowSecretDoor(maps i);
//由于有了新的出口,需要重新计算2层没个地板的阈值
Floor::ComputeFloorWeightByShortestPath(maps);
//打开对应秘密通道
hasSecretDoors[i] = true;
}
}
//毒气会扩散
Floor::UpdateToxicArea(maps (steps+1)*0.625 p);
vector::iterator it = people.end();
--it;
left = people.size();
//如果走了30步,还没有新的一个人逃离卢浮宫,认为陷入了某种死循环
if(tempSteps >= 30)
{
//计算当前人员受伤情况,退出循环
for(int i = 0; i < people.size(); ++i)
{
if(people[i].injure == 2)
{
numOfSevereInjury++;
}
else if(people[i].injure == 1)
{
numOfSlightInjury++;
}
}
break;
}
for(int i = left-1; i >= 0; --i--it)
{
//计算新一轮人员受伤死亡情况
if(people[i].isExited)
{
if(people[i].injure == 2)
{
numOfSevereInjury++;
}
else if(people[i].injure == 1)
{
numOfSlightInjury++;
}
it = people.erase(it);
//如果有人逃离卢浮宫,tempSteps=0,继续计数
tempSteps = 0;
}
else if(people[i].injure == 3)
{
it = people.erase(it);
numOfDeath++;
}
else
{
//更新每一个存活的人的位置
people[i].MoveToNextFloor(maps 0);
}
}
tempS
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1564656 2019-01-29 05:57 MathModel.Simulation\bin\Debug\MathModel.exe
文件 970289 2019-01-25 14:16 MathModel.Simulation\bin\Debug\MathModel.Simulation.exe
文件 1411 2019-03-07 18:35 MathModel.Simulation\include\Floor.h
文件 3133 2019-03-07 18:35 MathModel.Simulation\include\Person.h
文件 171 2019-01-25 15:31 MathModel.Simulation\include\Point.h
文件 3711 2019-03-07 18:44 MathModel.Simulation\main.cpp
文件 1339 2019-01-25 22:46 MathModel.Simulation\MathModel.Simulation.cbp
文件 612 2019-01-29 05:58 MathModel.Simulation\MathModel.Simulation.depend
文件 1357 2019-03-07 18:56 MathModel.Simulation\MathModel.Simulation.layout
文件 190521 2019-01-29 05:57 MathModel.Simulation\obj\Debug\main.o
文件 479028 2019-01-28 16:10 MathModel.Simulation\obj\Debug\src\Floor.o
文件 230979 2019-01-28 13:15 MathModel.Simulation\obj\Debug\src\Person.o
文件 8049 2019-03-07 18:44 MathModel.Simulation\src\Floor.cpp
文件 18392 2019-01-28 12:55 MathModel.Simulation\src\Person.cpp
文件 93 2019-01-25 15:31 MathModel.Simulation\src\Point.cpp
目录 0 2019-01-28 16:10 MathModel.Simulation\obj\Debug\src
目录 0 2019-01-29 05:57 MathModel.Simulation\bin\Debug
目录 0 2019-01-29 05:57 MathModel.Simulation\obj\Debug
目录 0 2019-01-25 13:17 MathModel.Simulation\bin
目录 0 2019-03-07 18:35 MathModel.Simulation\include
目录 0 2019-01-25 13:17 MathModel.Simulation\obj
目录 0 2019-03-07 18:44 MathModel.Simulation\src
目录 0 2019-03-07 18:56 MathModel.Simulation
----------- --------- ---------- ----- ----
3473741 23
相关资源
- 操作系统实验报告-动态存储管理
- MODBUS协议 vc实现
- CodeGear RAD Studio 2007-2009 破解补丁
- windows.h
- Windows下使用NIF扩展Erlang完整
- 仿射密码加密解密算法.docx
- tensorflow1.12.0+gpucuda 9.0
- MinGW免安装软件
- 用英文单词模拟数学运算
- 获取mp3文件的播放时间
- 哈夫曼编码译码实验报告
- vs+qt+qgis环境下通过串口通信接收数据
- UpdateVersion 修改exedll文件版本源码
- 7,4,3汉明码的仿真程序
- NurbsSurf.rar
- VC开发树列表
- 2013年D题 射频宽带放大器 全国一等奖
- DPMI16Bi.ovl
- 中国象棋代码及设计说明书和用户手
- 可以承载20k并发量的IOCP
- 汇编十六进制排序
- 绘制wav波形图
-
EllipseJig_ob
jectARX - 2019年MathorCup高校数学建模挑战赛D题
- 电子钟,温感,闹铃等功能,PCB-CAM及
- VHDL 的程序
- 蓝桥杯历年真题视频解析
- 进程cpu占用率和内存使用大小获取
- GPS软件接收机
- 《数据结构及算法经典》源代码.
评论
共有 条评论