月亮树 发表于 2012-9-1 15:29

哈密顿圈

本帖最后由 月亮树 于 2012-9-1 15:31 编辑

关于哈密顿圈的flag的用法;

function =modifycircle(c1,L);
global a
flag=1;
while flag>0
      flag=0;
   for m=1:L-3
      for n=m+2:L-1
        if a(c1(m),c1(n))+a(c1(m+1),c1(n+1))<...
           a(c1(m),c1(m+1))+a(c1(n),c1(n+1))
           flag=1;
           c1(m+1:n)=c1(n:-1:m+1);
        end
     end
  end
end
long=a(c1(1),c1(L));
for i=1:L-1
   long=long+a(c1(i),c1(i+1));
end
circle=c1;



特别是while flag>0
      flag=0;
这段的用法还有
for m=1:L-3
      for n=m+2:L-1
        if a(c1(m),c1(n))+a(c1(m+1),c1(n+1))<...
           a(c1(m),c1(m+1))+a(c1(n),c1(n+1))
           flag=1;
为什么要这样子?
请各位图友帮忙看看,最好注释一下!谢谢各位,M文件在下面,为下载需要-2体力,在悬赏上补上!增加为10体力!

dark木 发表于 2012-9-2 09:15

感觉我也看不懂
页: [1]
查看完整版本: 哈密顿圈