- 在线时间
- 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
- 自我介绍
- 软件开发工程师
 |
关于弗洛伊德算法发现的怪现象:& j+ D6 t$ {& ^! H
0 z2 @+ H N( f
我在用实际顶点代入验证的基础上证实如下现象,无法用理论解释,个人感到弗洛伊德算法象哥德巴赫猜想一样,无法证明的。, y7 s2 i. Y$ ^- T7 Z* A/ |
原来的弗洛伊德算法是:6 L0 g# y1 Y* n- u! a; v9 s1 f) D
For k:=1 to n
4 ~: |% c; L9 k4 n! _For i:=1 to n
& [( i! ?5 V% _For j:=1 to n5 N: f2 Z! X, Q1 I4 \/ D/ v
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];! }. O! `! z' S8 W6 F
我改成下面的形式,结果具体值代入仍是正确的,当然无法证明:
' ?3 n0 V& I( I& C* CFor j:=1 to n
: |1 E! W7 b! w+ F( eFor i:=1 to n
, F, w5 H4 y4 G( T7 _% }; \( fFor k:=1 to n
: e0 D8 f/ M8 }( E: {If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];" n; E4 E1 |) M$ \7 m: Z! J
我再改成如下形式,结果仍是正确的:1 p' l' y7 z( J( o) [
For j:=1 to n6 V3 k# G1 h) S6 V5 S; H
For i:=1 to j-1
: ^6 X1 I9 t! j1 p4 R6 K% b$ u' o2 P6 aFor k:=1 to n
" c2 X- q" t' X6 tIf D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];1 \ w7 s" j* X* B" `
如果我改成如下形式,结果出错,不行了:- e1 r3 T! ]; ~1 A; x# K# j: W
For j:=1 to n
; Q- Y. F, c4 ~) p; k h7 l8 iFor i:=j+1 to n
: L1 R; L& U, e/ cFor k:=1 to n* E* q9 i# g" z9 O3 v8 R
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];7 \ F3 C' C6 ?+ J; n
无法证明,只能用具体值来代入验证。6 v- y/ P4 f& `' ^
# {& N9 I( \& R! j9 Z2 P$ X! V; \
|
zan
|