- 在线时间
- 138 小时
- 最后登录
- 2018-11-1
- 注册时间
- 2015-8-26
- 听众数
- 13
- 收听数
- 0
- 能力
- 0 分
- 体力
- 366 点
- 威望
- 0 点
- 阅读权限
- 30
- 积分
- 146
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 70
- 主题
- 23
- 精华
- 0
- 分享
- 0
- 好友
- 17
升级   23% TA的每日心情 | 难过 2016-5-14 14:04 |
|---|
签到天数: 18 天 [LV.4]偶尔看看III
- 自我介绍
- 软件开发工程师
 |
关于弗洛伊德算法发现的怪现象:* x# C! @) u) D7 M {, x* F
* i4 Z0 s) u5 G
我在用实际顶点代入验证的基础上证实如下现象,无法用理论解释,个人感到弗洛伊德算法象哥德巴赫猜想一样,无法证明的。, |. ~% m' e4 q2 ?9 Q
原来的弗洛伊德算法是:; e( P0 P( J& K1 z& G" Z! B- x& K
For k:=1 to n% D+ h& P3 R& ]" Y) y# q8 K
For i:=1 to n
+ g+ T+ B0 k; O3 g/ ZFor j:=1 to n
9 I: [0 r6 h- P& `3 }0 c0 ZIf D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];
: B/ i! G; [" I+ Q我改成下面的形式,结果具体值代入仍是正确的,当然无法证明:
, S& }6 r) `' U) j% Z7 W$ LFor j:=1 to n) ]7 y% J; G0 F/ Q* a H5 S) a
For i:=1 to n
+ r/ U& G8 T: F [For k:=1 to n
9 o3 w- H# W: f' d) h1 [+ P: OIf D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];
% z& P0 J/ ~# l, e% c我再改成如下形式,结果仍是正确的:& ^) U F# {" o. \" _6 z
For j:=1 to n; ]2 F+ d+ |, U6 i/ {
For i:=1 to j-1
% f4 S4 W$ _* I- M3 t% iFor k:=1 to n2 J: m) p+ D; R7 V
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];5 h- p8 `3 L1 E C
如果我改成如下形式,结果出错,不行了:
+ G% \% }2 y; G7 jFor j:=1 to n
$ Y: m3 a+ e6 u/ FFor i:=j+1 to n/ O% r/ S# ^: Z! ^
For k:=1 to n
/ {+ w; M2 |% e0 l8 @9 _* eIf D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];+ |. t- M& d. R: [8 |/ K" E! q
无法证明,只能用具体值来代入验证。
9 z2 C8 @5 G1 Q: M
* A! _1 |, z9 h. g. j$ M- ^, |2 d) G! P- m4 h
|
zan
|