数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz
楼主: 牺牲

编程求解

[复制链接]
发表于 2003-8-21 04:46:37 | 显示全部楼层
今天今天又找到了用图论的解题思路。很快就把程序给出。
发表于 2003-8-21 04:48:47 | 显示全部楼层
我这次用MATLAB,XIAOFAN不要着急。
发表于 2003-8-21 05:35:06 | 显示全部楼层
多谢,我等着呢!
记着回答我的那个问题!!!!!:)
发表于 2003-8-22 03:48:28 | 显示全部楼层
我查了查命令大全,没有类似goto的命令,不过我编了这么多程序还没遇到非用GOTO不可的
发表于 2003-8-22 06:06:17 | 显示全部楼层
%过河前的状态商人仆人33 31 32 22 11 02 03
%过河后  03 02 11 22 32 31 33
clc
w=[0        inf        inf        inf        inf        inf        inf        inf        1        1        inf        inf        inf        inf
inf        0        inf        inf        inf        inf        inf        inf        inf        inf        1        inf        inf        inf
inf        inf        0        inf        inf        inf        inf        1        inf        1        inf        inf        inf        inf
inf        inf        inf        0        inf        inf        inf        inf        inf        inf        1        inf        1        inf
inf        inf        inf        inf        0        inf        inf        inf        inf        inf        inf        inf        inf        1
inf        inf        inf        inf        inf        0        inf        inf        inf        inf        inf        inf        inf        1
inf        inf        inf        inf        inf        inf        0        inf        inf        inf        inf        1        inf        inf
inf        1        1        inf        inf        inf        inf        0        inf        inf        inf        inf        inf        inf
inf        inf        1        inf        inf        inf        inf        inf        0        inf        inf        inf        inf        inf
inf        inf        1        inf        inf        inf        inf        inf        inf        0        inf        inf        inf        inf
inf        inf        inf        1        inf        inf        inf        inf        inf        inf        0        inf        inf        inf
inf        inf        inf        inf        1        1        1        inf        inf        inf        inf        0        inf        inf
inf        inf        inf        1        inf        inf        1        inf        inf        inf        inf        inf        0        inf
inf        inf        inf        inf        inf        inf        inf        inf        inf        inf        inf        inf        inf        0];   
[D,R]=floyd(w)
发表于 2003-8-22 06:09:26 | 显示全部楼层
function[D,R]=floyd(a)
n=size(a,1);
D=a;
for i=1:n
   for j=1:n
     R(i,j)=j;
   end
end
for k=1:n;
   for i=1:n;
      for j=1:n;
         if D(i,k)+D(k,j)<D(i,j)
            D(i,j)=D(i,k)+D(k,j);
            R(i,j)=R(i,k);
         end
      end
   end  
end
发表于 2003-8-22 06:12:53 | 显示全部楼层
答案D任意两点之间的最短距离。R表路径,R(1,14)=9表示从点1到点14要先经过9点。
R(9,14)=3表示从9 点到14点要先从3 点过。
发表于 2003-8-22 07:26:20 | 显示全部楼层
这个程序却实也够长的,让人有一点畏惧感,我还是觉得用图论会比较简单些
不过,要我编程实现也是实现不了的,在这里我还得佩服上面的编程者..
发表于 2003-8-22 19:12:43 | 显示全部楼层
结果很正确的,我看了很久才看懂啊,真佩服啊!!!
发表于 2003-8-23 05:31:30 | 显示全部楼层
没什么
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2024-11-27 03:41 , Processed in 0.053433 second(s), 12 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表