求C++或matlab编写的数学建模程序源码,有原题目更好了呀,最好是整个答卷还有分析结果都发过来,
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/23 21:44:39
求C++或matlab编写的数学建模程序源码,有原题目更好了呀,最好是整个答卷还有分析结果都发过来,
求C++或matlab编写的数学建模程序源码,
有原题目更好了呀,最好是整个答卷还有分析结果都发过来,
求C++或matlab编写的数学建模程序源码,有原题目更好了呀,最好是整个答卷还有分析结果都发过来,
//M/M/1排队系统仿真程序
//
//VC6下调试通过
#include
#include
#include
#include
#include
#include
using namespace std;
double lanmada=0.1; //到达间隔分布参数(负指数分布)
double mu=0.2; //服务时间分布参数(负指数分布)
struct Event//事件
{
int type; //事件类型,0:顾客到达,1:顾客离开
int id; //事件主体,顾客编号
double time;//事件发生时刻
};
list < Event > eventtable;//事件表
struct Customer//顾客
{
double arrive;//到达时刻
double start; //服务开始时刻
double depart;//离开时刻
};
Customer customer[10000];//顾客数据集合
queue< int > customerqueue;//排队情况
double t_idle=0;//空闲开始时刻
double s_idle=0;//累计空闲时间
//产生负指数分布的随机数
inline double exprand(double lanmada)
{
int rnd;
double r,x;
while(1)
{
rnd=rand();
if(rnd!=0 && rnd!=RAND_MAX)
break;
}
r=double(rnd)/RAND_MAX;
x=(-1/lanmada)*log(r);
return x;
}
void init()//仿真初始化
{
srand( time(NULL) );
Event event;
double t;
t=0;
event.id =0;
event.type =0;
event.time =0;
eventtable.push_back(event);
}
void insert(list < Event > &table ,Event event)
{
list< Event >::iterator iter=table.begin();
while( ((iter->time)< event.time) )
{
iter++;
if(iter==table.end())
break;
}
table.insert(iter,event);
}
int arriveproc(int id,double t)
{
customer[id].arrive =t;
if(id+1