|
<>程序不长,请高手们驻足</P>
<>time=0;t1=[1,4,5;5,3,2;4,3,3];n=3;
while t1~=zeros(n,n)
P=zeros(n,n);
cishu=0;tt=double(t1);
while cishu<n
i=1+round(rand(1)*(n-1));j=1+round(rand(1)*(n-1));
if tt(i,j)~=0
P(i,j)=1;
tt(i,=0;
tt(:,j)=0;
cishu=cishu+1;
end
end
t=double(P.*t1);
numda=min(min(nonzeros(t)));
P
t1=double(t1-numda*P);
fprintf('numda=%d\n',numda)
time=time+numda;
end
fprintf('time=%d\n',time) </P>
<>这样的运行结果按理来说是有几个的,但却只出现一个,真奇怪,运行结果如下:</P>
<P>P =</P>
<P> 0 1 0
0 0 1
1 0 0</P>
<P>numda=2
time=2</P>
<P>t1 =</P>
<P> 1 2 5
5 3 0
2 3 3
在t1不等于0矩阵的时候就停住了,真是匪夷所思,我在COMMAND WINDOWS敲入判断语句,</P>
<P> if t1==zeros(3,3)
t3=2
else
t3=1
end</P>
<P>t3 =</P>
<P> 1</P>
<P>>> if t1~=zeros(3,3)
t3=1
else
t3=2
end</P>
<P>t3 =</P>
<P> 2</P>
<P>这是什么哭笑不得的结果阿!!!请高手指点!非常急切</P>
<P>谢谢大家了</P> |
|