- 在线时间
- 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
- 自我介绍
- 软件开发工程师
 |
关于弗洛伊德算法发现的怪现象:
) @6 f& J7 F) P' S; S
+ q- _5 m- r# B; V( P7 Q我在用实际顶点代入验证的基础上证实如下现象,无法用理论解释,个人感到弗洛伊德算法象哥德巴赫猜想一样,无法证明的。, ]1 V) d3 B$ z# \6 W
原来的弗洛伊德算法是:4 s& s7 k; @5 n
For k:=1 to n
0 Y) ~# Y) U! f3 E zFor i:=1 to n! [% m" S9 N0 X' H
For j:=1 to n! _+ l$ c3 U5 e8 v5 n$ `( c
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];
( e8 o: b8 \1 Z# L. w4 p我改成下面的形式,结果具体值代入仍是正确的,当然无法证明:
6 g* e4 W6 a7 z2 g0 A3 i" D; hFor j:=1 to n
$ ?$ e5 d+ ~2 b# S: P# e: X6 ~3 o! eFor i:=1 to n$ I0 V# B& [- t1 r
For k:=1 to n9 q" i5 i8 G$ g j
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];
! [& Z9 ~& l9 L, @我再改成如下形式,结果仍是正确的:
2 c( a! z( X& D$ P* F2 J3 QFor j:=1 to n
8 t T( d m) x7 yFor i:=1 to j-1
! S1 ]: ? I) k1 y t3 GFor k:=1 to n
' M3 R6 u! P. D+ ]8 ]If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];0 p% m; _9 H* m8 _& f
如果我改成如下形式,结果出错,不行了:" b+ x/ q- ?5 Q. _
For j:=1 to n
4 ]. c1 u' n4 d: m; xFor i:=j+1 to n
! \+ G! F% Y+ @5 y$ AFor k:=1 to n4 m6 ^" E: J5 t' x
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];
$ u1 K# q( _! ]$ l; L无法证明,只能用具体值来代入验证。
) f* f2 y H3 d: v3 x7 D, _
, E7 M* g" h' h& e! b- N# g) [# H, ?5 W5 l; @! N
|
zan
|