- 在线时间
- 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 b* V$ k$ l! x/ ~
- c1 W1 s; [$ V. q4 S! T我在用实际顶点代入验证的基础上证实如下现象,无法用理论解释,个人感到弗洛伊德算法象哥德巴赫猜想一样,无法证明的。
4 P4 G5 |; {* T$ |原来的弗洛伊德算法是:) y% l% @8 c+ X
For k:=1 to n
6 P% C1 |8 |- f, ]0 RFor i:=1 to n$ ?8 t" w, E$ o- C/ v
For j:=1 to n" @( \$ Q" G) ^' v, k# e
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];
' v9 K" j/ o1 g" t& q$ Y我改成下面的形式,结果具体值代入仍是正确的,当然无法证明:
6 o$ k" R0 f* X2 G7 q( jFor j:=1 to n
$ B# r; ]5 x# o! ~" i1 PFor i:=1 to n
% j B$ g/ _7 m1 O8 f2 d$ |% P* R( P* kFor k:=1 to n
. R7 s( {/ P6 l. D9 B( |If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];7 f% @! T& D6 X L! |1 a. H
我再改成如下形式,结果仍是正确的:
' f2 d) |% D& I7 EFor j:=1 to n
) v8 O e3 h/ J! P8 W/ Y2 hFor i:=1 to j-1' `+ ^0 g! V: N- f- D' a
For k:=1 to n
# r- ?: X, \/ Z+ d- r6 @If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];
$ j6 l: T, @5 \$ M0 p# u% q% \5 X如果我改成如下形式,结果出错,不行了:+ T$ i1 U$ M w- S2 ?
For j:=1 to n. p0 y4 z X, @8 T* k( P3 C# t9 y
For i:=j+1 to n( C4 A4 m! J4 ]5 A4 g7 @1 P! s
For k:=1 to n8 b4 l1 r- z' G3 y* u0 `
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];0 L( w2 }8 K( [: S4 |7 t0 o. C6 o
无法证明,只能用具体值来代入验证。7 g3 u3 L) G4 \
6 I7 e' }; X, |6 w: t( Y
: h: x/ T* K$ b. _/ \5 ~, v# u |
zan
|