0001 void simu(int winds, int duration) { //窗口数、服务时长 0002 Queue<int>* wind = new Queue<int>[winds]; //窗口各维护一个队列,记录顾客们的服务时长 0003 while (duration--) { //在下班之前,每隔一个单位时间 0004 for (int i = 0; i < winds; i++) //各非空队列的队首顾客接受 0005 if (! wind[i].empty() && (1 > wind[i].front()--)) //单位时长的服务 0006 wind[i].dequeue(); //服务完毕则出列,后继者接替 0007 if (rand() % (winds+1)) //新顾客以wins/(wins+1)的概率到达 0008 wind[rand()%winds].enqueue(rand()%99 + 1); //随机选窗口、定时长 0009 } //for 0010 delete[] wind; //释放所有队列 0011 } //simu