- 在线时间
- 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
- 自我介绍
- 软件开发工程师
 |
关于弗洛伊德算法发现的怪现象:+ s4 L S! n9 L7 E) v$ ~0 O$ m
) \- @9 @3 D5 r( J4 \2 X1 ?我在用实际顶点代入验证的基础上证实如下现象,无法用理论解释,个人感到弗洛伊德算法象哥德巴赫猜想一样,无法证明的。. r- N X. u8 Y9 J; T) \9 Q- I2 y9 v
原来的弗洛伊德算法是:9 Q7 e: }1 l9 U: ^+ g4 f
For k:=1 to n7 B; e( _' H+ X' `" L6 U
For i:=1 to n
' W* T) C2 r) Q$ X5 ZFor j:=1 to n
/ d; T! a; m4 |) I0 QIf D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];
( u/ ~, t6 r/ W! _0 Y我改成下面的形式,结果具体值代入仍是正确的,当然无法证明:# G3 _6 v$ H8 z
For j:=1 to n
5 |0 [$ ?7 D! C% t9 ?5 d6 XFor i:=1 to n
7 @# F& f4 r; z7 N7 T7 G% iFor k:=1 to n, W: K$ o! U! G i
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];1 c. a& [2 I' w3 W2 @* ~+ v
我再改成如下形式,结果仍是正确的:
& r, s; P$ y3 z( b" }For j:=1 to n3 l" G1 M- `7 I8 M3 e
For i:=1 to j-1
" L$ ~* Z: H2 ]2 bFor k:=1 to n2 o, L+ P$ B0 R7 S% G! b3 m
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];: Z! t; B- m! K; e& |
如果我改成如下形式,结果出错,不行了:
* D- K% H. e/ ?' uFor j:=1 to n
/ L/ ~% w0 i/ X+ l' `2 e$ pFor i:=j+1 to n
( d2 o" D+ I$ D9 v4 n& B, WFor k:=1 to n
$ n( p# `' E: X6 PIf D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];
* j8 d7 U h1 M无法证明,只能用具体值来代入验证。 R% u. _; k) e4 G B& C
' C- y7 B Y3 `: \% c, Y
5 ^1 E% ?6 r# e# b |
zan
|