CUMCM已经结束了,我们最后的查重率是0%,但是我们搞错了论文,提交了一个18.3%的论文上去。给上我们队的排队论仿真代码,顺便给大家当一个警示!不要踩我们的坑!
s=126;
onetimefuwushu=1;
chuzuchedaodalv=1280;
ro=chuzuchedaodalv/onetimefuwushu;ros=ro/s;
sum1=0;for m=0:(s-1)
sum1=sum1+ro.^m/factorial(m);
endsum2=ro.^s/factorial(s)/(1-ros);
p0=1/(sum1+sum2);
p=ro.^s.*p0/factorial(s)/(1-ros);Lq=p.*ros/(1-ros);
L=Lq+ro;W=L/chuzuchedaodalv;
Wq=Lq/chuzuchedaodalv;
fprintf('排队等待的平均出租车为%21.3f人\n',Lq)
fprintf('系统内的平均乘客为%19.23f人\n',L)
fprintf('平均逗留时间为%21.3f分钟\n',W*60)
fprintf('平均等待时间为%20f分种\n',Wq*60)
clear clc
z_d_f_z_time = 12; N = 48900;
chuzuchedaodalv = 60;
onetimefuwushu = 0.75;
chuzuchedaodashijian = 1/chuzuchedaodalv ;
ser_mean = 1/onetimefuwushu;
arr_num = round(z_d_f_z_time*chuzuchedaodalv*2);
events = [];
events(1,:) = exprnd(chuzuchedaodashijian,1,arr_num);
events(1,:) = cumsum(events(1,:));
events(2,:) = exprnd(ser_mean,1,arr_num);
len_sim = sum(events(1,:)<= z_d_f_z_time);
events(3,1) = 0;
events(4,1) = events(1,1)+events(2,1);
events(5,1) = 1; chengke = [1];
for m = 2:arr_num if events(1,m)>z_d_f_z_time break;
else chengkeshuliang= sum(events(4,chengke) > events(1,m));
if chengkeshuliang>= N+1 events(5,m) = 0;
else if chengkeshuliang== 0 events(3,m) = 0;
events(4,m) = events(1,m)+events(2,m); events(5,m) = 1;
chengke = [chengke,m]; else chengkezongshu = length(chengke); events(3,m)=events(4,chengke(chengkezongshu))-events(1,m); events(4,m)=events(4,chengke(chengkezongshu))+events(2,m);
events(5,m) = chengkeshuliang+1; chengke = [chengke,m];
end end end end chengkezongshu = length(chengke)
stairs([0 events(1,chengke)],0:chengkezongshu
hold on;
stairs([0 events(4,chengke)],0:chengkezongshu,'.-r');
legend('到达时间 ','离开时间 ');
hold off;
grid on;
figure;
plot(1:chengkezongshu,events(3,chengke),'r-*',1: chengkezongshu,events(2,chengke)+events(3,chengke),'k-');
legend('等待时间 ','停留时间 ');
grid on; ```