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

📄 shu7.asv

📁 这是本人在2005年参加全国大学生电工建模做b题的相关资料
💻 ASV
字号:
clear
i=1;
sum1=0;
a=[0	1	1	0	0	0	0	
0	0	0	0	0	0	0	
0	1	0	1	0	0	0	
0	0	1	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	0	0	0	0	0	
0	1	0	1	0	0	0	
1	1	0	1	0	0	1	
0	1	0	1	0	0	0	
0	0	0	0	0	0	0	
0	0	0	0	1	0	0	
0	0	1	1	0	0	0	
0	0	1	0	0	0	0	
0	0	0	0	0	0	0	
0	0	0	0	0	1	0	
0	0	0	0	0	0	1	
0	0	1	0	0	0	0	
1	0	0	1	0	0	0	
0	0	0	0	0	0	0	
0	1	0	0	1	0	0	
0	0	0	0	0	0	1	
0	0	0	0	0	0	1	
1	1	0	0	0	0	0	
0	0	0	0	1	0	0	
0	0	0	0	0	1	0	
0	1	0	0	0	0	0	
1	0	0	0	0	0	0	
0	0	0	1	1	0	0	
0	0	0	0	0	1	0	
0	0	0	0	0	0	1	
0	0	0	1	0	1	0	
1	0	1	0	0	0	0	
0	0	0	0	1	1	0
0	0	0	1	0	0	1	
1	0	0	0	0	0	0	
0	0	0	0	0	1	0	
0	0	0	0	1	0	0	
0	0	0	0	0	1	1	
];
%--------------------------------------------------------------%
%把运动员参加运动的对应情况表现在矩阵a中,其中行号代表运动员编号,列号
%代表运动项目编号,a[i,j]=1代表编号为i的运动员参加编号为j的运动项目,
%若为a[i,j]=0则表示编号为i的运动员不参加编号为j的运动项目
%--------------------------------------------------------------%
a=a';
a(7,:)=[];
a=a';
b=a'*a;

%--------------------------------------------------------------%
%当k不等于l时,b[k,l]代表当编号为k的运动项目与编号为l的运动项目挨在一
%起举行时,连续参加这两项比赛的运动员人次,当k=l时表示参加编号为k的项目
%的运动员人次
%-------------------------------------------------------------%
for i=1:6
    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);
%------------------------------------------------------------%
%求矩阵每一列的次大值与最小值之间的差,并求出差值的最大值
%------------------------------------------------------------%
c=min(min(b));
%------------------------------------------------------------%
%求矩阵b中的最小元素
%------------------------------------------------------------%
for i=1:L
    if zda==cha(i)
        break;
    end
end
%------------------------------------------------------------%
%求出在矩阵的每一列中,次大值与最小值差值最大的那一列的坐标i;
%------------------------------------------------------------%
if xiao(i)-c<zda
for j=1:H
    if b(j,i)==xiao(i);
        break;
    end
end
%------------------------------------------------------------%
%求出在矩阵的每一列中,次大值与最小值相差最大的那一列中的最小值的行
%坐标j;
%------------------------------------------------------------%
else 
    Y=qhl(c,b);
    j=Y(1);
    i=Y(2);
end
%c=b(j,i);
%Y=qhl(c,b);
%------------------------------------------------------------%
%调用函数qhl(c,b)求
%m=Y(1);
%n=Y(2);
ljx(s)=j;
ljy(s)=i;
s=s+1;
b(j,:)=Inf;
B=b';
B(i,:)=Inf;
b=B';
b(i,j)=Inf;

end
for i=1:6
    sum1=sum1+bb(ljx(i),ljy(i));
end
for i=1:6
    C(i)=sum1-bb(ljx(i),ljy(i));
end
sum1=min(C)
    

⌨️ 快捷键说明

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