91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 6KB
    文件類型: .c
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-14
  • 語言: 其他
  • 標簽: 資源??

資源簡介

MM1排隊系統仿真 應用M/M/1隊列編程思想,模擬有限顧客數量和隊列長度的單服務臺排隊仿真事件,并統計平均等待時間,平均隊列長度和服務器利用率,熟悉事件推進方式,隊列建立和提取方式。

資源截圖

代碼片段和文件信息

#include?
#include?
#include??

#define?ARRIVE?0
#define?DEPAR?1
#define?IDLE???0
#define?OCCUPY?1

int?queueMaxqueueLength=0custNumcustNumQueue=0busy=IDLE;?
double?clock=0sumDelay=0sumServe=0;


typedef?struct?eventNode{
int?typeid;
double?arriveTime;
double?serveTime;
double?deparTime;

struct?eventNode*?nextlink;?
}event;
event*?queueTail;

struct?eventHeadNode{
struct?eventNode*?eventlink?;
};
struct?eventHeadNode*?eventHead;


struct?queueHeadNode{
struct?eventNode*?queuelink;
};
struct?queueHeadNode*?queueHead;

double?U_Random();
double?possion(int?lambdaArrive);
double?exponential(double?lambdaServe);
void?initialFEL(int?lambdaArrivedouble?lambdaServe);
void?serve();
void?placeEvent(event*?eventTemp);
void?addQueue(event*?eventTemp);
void?destroyEventHead(event*?eventTemp);
event*?popQueue();
void?bl();

double?U_Random()??
{
??double?f;
??f?=?(float)(rand()?%?100);
?
??return?f/100;
}


double?possion(int?lambdaArrive){
int?k=0;
long?double?p=1.0;
long?double?l=exp(-lambdaArrive);


while(p>=l){
double?u?=?U_Random();
p*=u;
k++;
}
return?k-1;
}

double?exponential(double?lambdaServe){
double?u;

do{
u=(double)(rand()%100)/100;
}while(u==0);
u=(-1/lambdaServe)*log(u);
return?u;
}

void?initialFEL(int?lambdaArrivedouble?lambdaServe){
int?i;
double?sumTime=0;
event*?eventCur;

for(i=0;i if(eventHead->eventlink==NULL){
eventCur=(event*)malloc(sizeof(event));
eventCur->type=ARRIVE;
eventCur->arriveTime=possion(lambdaArrive);
eventCur->serveTime=exponential(lambdaServe);
eventCur->deparTime=-1;
eventCur->nextlink=NULL;
eventCur->id=i;
eventHead->eventlink=eventCur;
sumTime=eventCur->arriveTime;
}
else{
eventCur->nextlink=(event*)malloc(sizeof(event));
eventCur=eventCur->nextlink;
eventCur->type=ARRIVE;
sumTime+=possion(lambdaArrive);
eventCur->arriveTime=sumTime;
eventCur->serveTime=exponential(lambdaServe);
eventCur->deparTime=-1;

eventCur->nextlink=NULL;
eventCur->id=i;
}
printf(“%d號顧客到達時間:%lf,服務時間:%lf\n“eventCur->ideventCur->arriveTimeeventCur->serveTime);
}

}

void?serve(){
event*?eventCur;
while(eventHead->eventlink!=NULL){
eventCur=eventHead->eventlink;

if(eventCur->type==ARRIVE){
clock=eventCur->arriveTime;

if(busy==IDLE){
busy=OCCUPY;
eventCur->deparTime=clock+eventCur->serveTime;
eventCur->type=DEPAR;

destroyEventHead(eventCur);
placeEvent(eventCur);
}
else{
if(queueLength destroyEventHead(eventCur);
addQueue(eventCur);
?
custNumQueue++;
queueLength++;
}
else{
destroyEventHead(eventCur);
free(eventCur);
}
}
}


評論

共有 條評論