- 在线时间
- 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
- 自我介绍
- 软件开发工程师
 |
关于弗洛伊德算法发现的怪现象:
" ~. N- ^4 I+ C# g* e! Z/ Z
. l3 C; Z$ `% w3 }3 B8 C7 G2 N我在用实际顶点代入验证的基础上证实如下现象,无法用理论解释,个人感到弗洛伊德算法象哥德巴赫猜想一样,无法证明的。
7 O3 R: Y+ x8 m" }& K0 |7 x0 K原来的弗洛伊德算法是:$ i" y5 }) U' E* ?1 E& `
For k:=1 to n' I* Z4 ~, m& ]$ D
For i:=1 to n# b( G$ M$ Y1 w) W3 q) N
For j:=1 to n3 ?$ E" A9 ^& W" T9 ]5 c( E0 o
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];
M" d. O0 e7 _6 p我改成下面的形式,结果具体值代入仍是正确的,当然无法证明:
3 v: R6 B8 l5 F/ _ I- ]; ^3 j5 ~For j:=1 to n
, w. T" D+ ]3 Q. E0 i. n, G6 KFor i:=1 to n
1 G; h, _' e t; x4 qFor k:=1 to n& h: X- x8 d$ ~4 i+ |
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];
' G* R+ R$ X5 v0 w我再改成如下形式,结果仍是正确的:+ D' W( c" D; H6 R! |3 ]
For j:=1 to n/ s7 N4 _) y3 O; {5 T' ~
For i:=1 to j-1
! F3 ]7 d }4 F7 F/ B4 a |4 RFor k:=1 to n
. o0 L8 I' _ Q" iIf D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];
$ f% x3 [, g* ~6 I; i4 P( m如果我改成如下形式,结果出错,不行了:( O0 K5 \# C* w) l4 R7 R
For j:=1 to n
* p/ J/ I. G/ y0 N. h+ j5 RFor i:=j+1 to n
. |9 l) ?2 G8 g* U6 R# Z0 f8 B. }For k:=1 to n
8 a- u) L1 B9 r ^2 c% `5 jIf D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];4 t/ G& ?, d" i. z$ Q+ Q! F& z
无法证明,只能用具体值来代入验证。# Y5 z' w* N8 t0 c) j! f5 E
, q& m' R7 x" c% m3 Z* k! B5 c
- F y `/ b9 u, i4 I |
zan
|