- 在线时间
- 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
- 自我介绍
- 软件开发工程师
 |
关于弗洛伊德算法发现的怪现象:5 U: Z! R) N. a9 x; h
, D4 F/ h: }0 H; ]
我在用实际顶点代入验证的基础上证实如下现象,无法用理论解释,个人感到弗洛伊德算法象哥德巴赫猜想一样,无法证明的。. O5 i! q+ S% g
原来的弗洛伊德算法是:) m9 X4 g/ B/ [1 n& V) c, }
For k:=1 to n
0 P$ A) q) q, b$ yFor i:=1 to n) X0 j, D8 v1 z0 q1 ^: }
For j:=1 to n
2 W5 h# Q& j- B, E8 mIf D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];
$ @# X& Y F; U5 V# U我改成下面的形式,结果具体值代入仍是正确的,当然无法证明:1 [+ k4 @5 O# v" P: ?9 ]
For j:=1 to n
2 D( T% a- r, N+ o1 W$ A3 ^" E; ^/ OFor i:=1 to n
/ _1 A- l' w& D5 I- z& \For k:=1 to n$ I' o( Z, y4 Z7 y% F) r
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];
. f8 b. O8 D4 c3 M+ g, B我再改成如下形式,结果仍是正确的:0 E! k7 Z! V; c: \( B
For j:=1 to n$ B+ L% B0 z. W8 w" P( X4 }
For i:=1 to j-1
+ q3 R' t6 \+ x# _$ ]3 BFor k:=1 to n
/ _: U* v9 T9 x% B* m) |0 K) OIf D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];
/ J% y: R# L! v( q. V% m如果我改成如下形式,结果出错,不行了:
! `# Q7 D' f% UFor j:=1 to n8 M( p- C% E; X
For i:=j+1 to n
' `0 c: T" ~- Y. r# wFor k:=1 to n
% z1 H* ]6 { K3 \) k3 dIf D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];2 @, X3 b& z; ^7 F. w1 J5 Q
无法证明,只能用具体值来代入验证。
) R- P- H- H8 c. W r8 A
2 E3 t8 _7 a+ h7 g0 f. l) T( F& q4 Q7 G& `5 w5 V
|
zan
|