%%
%p為偶數(shù)
clc,clear
p=10;
A=zeros((p-1)*p/2+p-2,2);
[m,n]=size(A);
%%
%構(gòu)建第一輪比賽排序for o=1:p/2
A(o,1)=o;
A(o,2)=p-o+1;
end
A%%
%構(gòu)建其他輪比賽排序
for i=1:p-2for t=1:p/2if t==1A((p/2+1)*i+1,1)=1; A((p/2+1)*i+t,2)=A((p/2+1)*(i-1)+(t+1),2);elseif t==2A((p/2+1)*i+t,1)=A((p/2+1)*(i-1)+1,2);A((p/2+1)*i+t,2)=A((p/2+1)*(i-1)+(t+1),2);%elseif t==3% A((p/2+1)*i+t,1)=A((p/2+1)*(i-1)+(t-1),1);% A((p/2+1)*i+t,2)=A((p/2+1)*(i-1)+(t+1),2);elseif t==(p/2)A((p/2+1)*i+t,1)=A((p/2+1)*(i-1)+(t-1),1);A((p/2+1)*i+t,2)=A((p/2+1)*(i-1)+(t),1);elseA((p/2+1)*i+t,1)=A((p/2+1)*(i-1)+(t-1),1);A((p/2+1)*i+t,2)=A((p/2+1)*(i-1)+(t+1),2);endendend
A
參賽隊伍為奇數(shù)
%%
%p為奇數(shù)
clc,clear
p=9;
A=zeros(((p-1)*(p+1))/2+p-1,2);
[m,n]=size(A);
%%
%構(gòu)建第一輪比賽排序
for o=1:(p+1)/2
A(o,1)=2*o-1;
A(o,2)=2*o;
end
A
%%
%構(gòu)建其他輪比賽排序
for i=1:p if mod(i,2)~=1 %輪數(shù)為偶數(shù)for u=1:(p+1)/2if u==1A(((p+1)/2+1)*(i-1)+1,1)=1;A(((p+1)/2+1)*(i-1)+1,2)=(p-((i/2-1)*2)); elseif u==2A(((p+1)/2+1)*(i-1)+u,1)=A(((p+1)/2+1)*(i-2)+u-1,2);A(((p+1)/2+1)*(i-1)+u,2)=A(((p+1)/2+1)*(i-2)+u,2);elseif u==((p+1)/2)A(((p+1)/2+1)*(i-1)+((p+1)/2),2)=(p-((i/2-1)*2));A(((p+1)/2+1)*(i-1)+u,1)=A(((p+1)/2+1)*(i-2)+u-1,1);elseA(((p+1)/2+1)*(i-1)+u,2)=A(((p+1)/2+1)*(i-2)+u,2); A(((p+1)/2+1)*(i-1)+u,1)=A(((p+1)/2+1)*(i-2)+u-1,1);endendelseif i~=1 %輪數(shù)為奇數(shù)for u=1:(p+1)/2if u==1A(((p+1)/2+1)*(i-1)+1,1)=1;A(((p+1)/2+1)*(i-1)+1,2)=A(((p+1)/2+1)*(i-2)+1+1,2);else A(((p+1)/2+1)*(i-1)+u,1)=A(((p+1)/2+1)*(i-2)+u,1);A(((p+1)/2+1)*(i-1)+u,2)=A(((p+1)/2+1)*(i-2)+u+1,2);endendendend
%%
%清除工作,i取p-1和p-2時輪數(shù)多了,i若不取無法完成對偶數(shù)的控制,見21行等號y邊
m=((p-1)*(p+1))/2+p-1;
for i=1:((p+1)/2)+1A(m,:)=[];
end
r=1;
for i=1:p-1if mod(i,2)==1A(((p+1)/2+1)*i-r,:)=[]; r=r+1;end
end
A