📄 youhua14.m
字号:
clear
i=1;
sum0=0;
a=[0 1 1 0 0 0 0 0 1 0 0 0 1 0
0 0 0 0 0 0 0 1 0 0 1 1 0 0
0 1 0 1 0 0 0 0 0 1 0 0 0 0
0 0 1 0 0 0 0 1 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 1 0 1 1
0 0 0 0 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 1 0
0 0 0 0 0 0 0 0 0 1 0 0 0 1
0 1 0 1 0 0 0 0 0 1 1 0 0 0
1 1 0 1 0 0 1 0 0 0 0 0 0 0
0 1 0 1 0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 1 0 1 0 0 0 0
0 0 0 0 1 0 0 0 0 1 0 0 0 1
0 0 1 1 0 0 0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 1 0 0 0 1 0 0
0 0 0 0 0 0 0 0 1 0 1 1 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 0 1 0 0 0 0
1 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 1
0 1 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 1 0 0
0 0 0 0 0 0 1 1 0 0 0 0 1 1
1 1 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 0 0 0 1 0 0 0
0 1 0 0 0 0 0 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 1 1 0 0
0 0 0 1 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 1 0 0 0 1 0 0
0 0 0 0 0 0 1 0 0 1 0 0 0 0
0 0 0 1 0 1 0 0 0 0 0 0 0 0
1 0 1 0 0 0 0 0 0 0 0 0 1 1
0 0 0 0 1 1 0 0 0 0 0 1 0 0
0 0 0 1 0 0 1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 1 1 0 0 0 0
0 0 0 0 0 1 0 1 0 1 0 0 0 1
0 0 0 0 1 0 0 1 1 0 0 0 1 0
0 0 0 0 0 1 1 0 1 0 0 0 1 0
];
%--------------------------------------------------------------%
%把运动员参加运动的对应情况表现在矩阵a中,其中行号代表运动员编号,列号
%代表运动项目编号,a[i,j]=1代表编号为i的运动员参加编号为j的运动项目,
%若为a[i,j]=0则表示编号为i的运动员不参加编号为j的运动项目
%--------------------------------------------------------------%
b=a'*a;
%--------------------------------------------------------------%
%当k不等于l时,b[k,l]代表当编号为k的运动项目与编号为l的运动项目挨在一
%起举行时,连续参加这两项比赛的运动员人次,当k=l时表示参加编号为k的项目
%的运动员人次
%-------------------------------------------------------------%
[H,L]=size(b);
sum0=0;
%为了方便下面的计算,我们把矩阵的对角线上的元素赋值为正无穷,此时,这些
%元素已经没有了具体意义.
%-------------------------------------------------------------%
bb=b;
%-------------------------------------------------------------%
%把矩阵b赋值给另外一个矩阵bb
%-------------------------------------------------------------%
c=min(min(b));
Y=qhl(c,b);
i=Y(1);
j=Y(2);
xx(1)=i;
xx(2)=j;
jsq=2;
b(i,:)=Inf;
B=b';
B(j,:)=Inf;
B(i,:)=Inf;
b=B';
k=0;
while min(min(b))~=Inf
b(j,i)=Inf;
jsq=jsq+1;
MI=min(b(j,:));
x=0;
while x<L
k=k+1;
x=x+1;
if b(j,x)==MI
t=x;
x=L+1;
break;
end
end
i=j;
j=t;
b(i,:)=Inf;
bbb=b';
bbb(j,:)=Inf;
b=bbb';
xx(jsq)=j;
end
for i=2:14
sum0=sum0+bb(xx(i-1),xx(i));
end
sum0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -