📄 随机模拟dvd.m
字号:
y=randperm(1000);
limit0=zeros(100,1);
yita=0.32;
beta=0.85;
C=zeros(1000,100);
for i=1:1000
for j=1:100
if Manyidu(i,j)>0
C(i,j)=1/Manyidu(i,j);
end
end
end
for j=1:100
for i=1:1000
if Manyidu(i,j)>0
limit0(j)=limit0(j)+1;
end
end
end
N=limit0'*ones(100,1);
limit1=floor(yita*limit0);
N0=limit1'*ones(100,1);
D=zeros(1000,1);
jieguo0=zeros(1000,100);
for k=1:10
for j=1:100
for i=1:1000
if Manyidu(i,j)==k&limit1(j)>0&D(i)<3
jieguo0(i,j)=1;
D(i)=D(i)+1;
limit1(j)=limit1(j)-1;
end
end
end
end
%第二次分配
for j=1:100
limit2(j)=0;
for i=1:600
limit2(j)=jieguo0(y(i),j)+limit2(j);
end
end
for i=1:600
D2(y(i))=0;
end
for k=1:10
for j=1:100
for i=1:600
if Manyidu(y(i),j)==k&limit2(j)>0&D2(y(i))<3&jieguo0(y(i),j)==0
jieguo0(y(i),j)=1;
D2(y(i))=D2(y(i))+1;
limit2(j)=limit2(j)-1;
end
end
end
end
nA=0;
nB=0;
kA=(1+1/2+1/3+1/4+1/5+1/6+1/7)*beta;
kB=(1+1/2+1/3)*beta;
for i=1:1000
my(i)=C(i,:)*jieguo0(i,:)';
end
for i=1:1000
if(i<=600&my(y(i))>=kA)
nA=nA+1;
end
if(i>600&my(y(i))>=kB)
nB=nB+1;
end
end
for i=1:1000
n1(i)=jieguo0(i,:)*ones(100,1);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -