⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gaijin.asv

📁 这是本人在2005年参加全国大学生电工建模做b题的相关资料
💻 ASV
字号:
clear
i=1;
sum1=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的项目
%的运动员人次
%-------------------------------------------------------------%
for i=1:14
    b(i,i)=inf;
end
%为了方便下面的计算,我们把矩阵的对角线上的元素赋值为正无穷,此时,这些
%元素已经没有了具体意义.
%-------------------------------------------------------------%
bb=b;
%-------------------------------------------------------------%
%把矩阵b赋值给另外一个矩阵bb
%-------------------------------------------------------------%
s=1;
while min(min(b))~=Inf
    [H,L]=size(b);
%------------------------------------------------------------%
%求矩阵b的行数和列数,并把他们分别赋值给H和L
%------------------------------------------------------------%
xiao=min(b);
%------------------------------------------------------------%
%求矩阵b的每一列最小值,并把他赋值给矩阵xiao
%------------------------------------------------------------%
da=MAX(b);
%------------------------------------------------------------%
%通过调用函数MAX(b)求矩阵每列的次大值,并赋值给矩阵da 
%------------------------------------------------------------%
cha=da-xiao;
zda=max(cha);%------------------------------------------------------------%
%求矩阵每一列的次大值与最小值之间的差
%------------------------------------------------------------%

for i=1:L
    if zda==cha(i)
        break;
    end
end
%-----------------------------------------------------------%
%求出在矩阵的每一列中,最大值与最小值相差最大的那一列的坐标i;
for j=1:H
    if b(j,i)==xiao(i);
        break;
    end
end
%-----------------------------------------------------------%
%求出在矩阵的每一列中,最大值与最小值相差最大的那一列中的最小值的行坐标j;
c=b(j,i);
Y=qhl(c,b);
m=Y(1);
n=Y(2);
ljx(s)=m;
ljy(s)=n;
s=s+1;
b(m,:)=Inf;
B=b';
B(n,:)=Inf;
b=B';
b(n,m)=inf;
for i=1:s-1
        b(n,ljx(i))=Inf;
end 
end
for i=1:13
    sum1=sum1+bb(ljx(i),ljy(i));
end
sum1
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -