资源简介
元胞自动机的NS模型的C++代码实现 可用 结构清晰
代码片段和文件信息
#include“iostream“
#include
#include
#include
#include
using namespace std;
//#include
//#include“stdafx.h“
#define Lane 50//总共的格子数
#define TBEGIN 2000//开始计时的次数
#define T 3000//总共更新的次数
#define Vmax 5//最大速度
#define P 0.5//减速概率
void gotoxy(int xint y);
void back();
void show(intint);
void clear(int);
void delay(int );
void delay1(int );
void initcars(int );
void move();
float caculate(int );
int FindFront(int int );
int cars[T][Lane]; //定义数组
//车辆是从左到右顺序更新的,可能和实际不太相符。可以使用多线程并行更新的方法,网上一些NS模型的实现是采用顺序更新的,所以我就
//先采用了顺序更新。 为了便于观察,我在车辆更新时用了延迟函数。
int main()
{
int i;
float v;
srand(time(NULL));
i=20;
initcars(i);
move();
v=caculate(i);
return 0;
}
//初始化道路车辆
void initcars(int n)
{
int ijlocationspeed;
for(i=0;i for(j=0;j cars[i][j]=-1;
//赋初值
for(i=0;i {
location=rand()%Lane;
if( cars[0][location] ==-1)
{
cars[0][location]=rand()%(Vmax+1);
show(locationcars[0][location]);
back();
}
else //如果该位置上已经youchel,再为其重新随机选择一个位置
i--;
}
delay(1);
//debug
/*for(j=0;j if( cars[0][j] >=0 )
printf(“%d %d\n“jcars[0][j]);*/
}
//车辆运动
void move()
{
int i=0jxvgap;
for(i=0;i {
for(j=0;j {
if( cars[i][j] >= 0 )
{
v=cars[i][j];
gap=FindFront(ij); //与前车距离
//printf(“weizhi: %d sudu:%d gap:%d\n“jcars[i][j]gap);
//速度更新
if( (v+1) <= Vmax)
v++;
if( v > gap )
v = gap;
if( v>0 && ( rand()%100 <= P*100 ) )
v--;
//位置更新
x=v+j;
x=x%Lane;
//printf(“\n%d %d\n“xv);
if( cars[i+1][x] == -1 )
{
cars[i+1][x]=v;
clear(j);
back();
show(xv);
back();
}
else
{
printf(“撞车啦第%d秒,第%d格\n“ij);
exit(1);
}
delay1(1);//延迟显示
}
}
delay(1);//延迟显示
}
}
//计算与前车距离 空格的个数
int FindFront(int iint j)
{
int front=0;
while( cars[i][(++j
相关资源
- 基于SOCKET的文件传输服务端+客户端
- 多边形填充的扫描线c++算法
- VS与串口通信
- 美国Delta Tau公司PMAC多轴运动控制卡的
- c++实现决策树分类算法(内附测试数
- C++ Primer 第五版 中文版 带书签 百度云
- c++代码生成器
- C#加载C++\\C的DLL动态链接库
- c++小游戏五子棋,带AI
- Raize Components 6.1.12 for C++builder XE10的安
- segy文件读取C++源码
- 链队列严蔚敏 C语言版 链队列表示与
- C++全方位学习》范磊高清pdf书+源代码
- 一步一步教你用VC和VB调用C++ DLL 的源
- MFC和CLIPS交互例程
- 数据结构 排序综合c++
- C++MFC教程
- 个人资源管理
- Visual_C++面向对象编程教程第三章答案
- Retinex算法,C++,opencv
- c++21天课程.txt
- 操作系统实验-----MFC线程--购票系统演
- 基于C++的lzw的编码的实现
- 车位管理系统
- atl连接点、c++接收器、js接收器
- 用C++编写的DBMS
- 数据结构--队列实现舞伴配对问题 舞
- C++监控注册表源代码
- GE OPC Server
- c++实现的字符串替换功能
评论
共有 条评论