- 在线时间
- 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
- 自我介绍
- 软件开发工程师
 |
关于弗洛伊德算法发现的怪现象:
" v1 U8 l% W9 s0 }
& F( B1 z1 d3 e0 x我在用实际顶点代入验证的基础上证实如下现象,无法用理论解释,个人感到弗洛伊德算法象哥德巴赫猜想一样,无法证明的。
, [* ~4 v( F9 V$ ^; Z: F! X原来的弗洛伊德算法是:
) o( e% H- g4 r ^4 jFor k:=1 to n
0 v! H( ?& b8 dFor i:=1 to n
- a, `- r5 Z( @8 zFor j:=1 to n- S; D0 f1 ?7 N# D
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];! g" V- K5 P/ Q
我改成下面的形式,结果具体值代入仍是正确的,当然无法证明:
K$ A' \! m8 l; H) s, EFor j:=1 to n, Y3 A0 S/ I9 L; j3 N0 q) h
For i:=1 to n ?' b" R' J: g; H: p8 L& B
For k:=1 to n
* y& o+ v5 o* |# X, k# k XIf D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];) _0 z2 ^* l8 D: Q& ^
我再改成如下形式,结果仍是正确的:
: L, N& Z/ v/ ]/ x. AFor j:=1 to n
! `0 A& N+ l) R" c' @1 `7 hFor i:=1 to j-1, [; P0 V$ }- s1 n% z4 j
For k:=1 to n3 j& a! @6 Y7 c& k6 z* q
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];: v9 L% P% p: u* ^1 e T9 M
如果我改成如下形式,结果出错,不行了:
& o" l3 c# k8 O# C8 DFor j:=1 to n
1 y% _7 @& ]/ sFor i:=j+1 to n: s; n( `: }$ F0 G7 L. l
For k:=1 to n
, M0 @) j# L* ]3 H1 A2 xIf D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];
3 m! O- A9 l7 S8 W0 g& ?0 m无法证明,只能用具体值来代入验证。
% j0 f" o2 Q6 w" _/ L- D% o# s/ ^+ k3 t! ~1 L, t4 o
! @% H# s( F5 m1 w2 M: `* w/ D; b
|
zan
|