⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mm1.c

📁 排队论中的一个仿真程序
💻 C
字号:
#include "smpl.h"

extern smpl(int m,char * s);
extern facility(char *s,int n);
extern request(int f,int tkn,int pri);
extern cause(int *ev,int *tkn);
extern schedule(int ev,real te,int tkn);
extern release(int f,int tkn);
extern report();
extern real expntl(real x);

/*main ()
{	 
	//Ta为顾客到达的平均时间间隔
	//Ts为平均服务时间,Te为仿真器运行时间
	//ws为顾客在系统中平均逗留时间
	float Ta=0.625, Ts=0.250, Te=200000.0, span[200000], ws=0.0;
	int customer=1, event, server, count=0, l=0;
	smpl(1, "M/M/1 Queue");//初始化
	server=facility("server", 1);//定义服务窗
	schedule(1, expntl(Ta), customer);//调度第一个顾客到达事件
    while (time()<Te)
	{
		  cause(&event, &customer);//取出第一个时间
		  switch(event)
		  {
		  case 1://顾客到达
				    span[l++]=time();
				    schedule(2, 0.0, customer);//调度向服务窗申请
				    schedule(1, expntl(Ta), customer);//调度下一个顾客到达
				    break;
		  case 2://服务请求
				    if (request(server, customer, 0)==0)	//请求成功
				       {    schedule(3, expntl(Ts), customer);//调度服务完成事件
				       }
				    break;
		  case 3://服务完成
				    span[count]=time()-span[count];
			        count++;
				    release(server, customer);//释放服务窗
				    break;
		 default:
				    break;
		     }
	 }
	report();//报告结果

	 for(l=0;l<=count-3;l++)
	 {		
		 ws=ws+span[l];
	 }
	 printf("\n  Ws=%f",ws/(count-2)); //显示顾客平均逗留时间
	 printf("\n  Ls=%f\n\n",Lq(server)+0.4);//显示数据集中器内分组的平均分组数
}
*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -