- 在线时间
- 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
- 自我介绍
- 软件开发工程师
 |
关于弗洛伊德算法发现的怪现象:
* b3 W* u5 k+ o+ @. P& y! O/ z. Q# ] j+ D8 j9 t8 e# K9 ?- e
我在用实际顶点代入验证的基础上证实如下现象,无法用理论解释,个人感到弗洛伊德算法象哥德巴赫猜想一样,无法证明的。
4 R8 `' w) z) Y2 c* O3 p. u原来的弗洛伊德算法是:
8 P5 Z5 _& Q! b, I; G$ TFor k:=1 to n
# i$ x; W0 W& uFor i:=1 to n& n- [4 p' n. R! o& v- n# X
For j:=1 to n
. @( U T3 E2 M; N1 b) TIf D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];
3 N+ l- _- M5 l7 [) K( t我改成下面的形式,结果具体值代入仍是正确的,当然无法证明:3 y3 K {- ~( h2 Z3 |% j2 I6 |
For j:=1 to n% l3 F( A( A7 [* L0 t1 \) _
For i:=1 to n
6 {6 N! g( `! U' V: R6 x- q' O$ QFor k:=1 to n8 J- t7 C- d1 X" |
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];
" T$ ]- k9 p, } K) q3 r我再改成如下形式,结果仍是正确的:* t" S5 f( F3 I8 V* t+ h# Y
For j:=1 to n
: T4 ^5 Y6 S. s# g7 cFor i:=1 to j-1
+ o# x" n) T& U# TFor k:=1 to n
' Q g3 @) n8 ?5 y }$ ZIf D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];% z! S B+ |$ a/ W* t+ L! Q
如果我改成如下形式,结果出错,不行了:; A: T# [. }. h& X* @" b
For j:=1 to n! g" a/ f/ a, U2 z, v" g: h
For i:=j+1 to n# N/ a+ _/ k$ I+ L
For k:=1 to n1 C1 a1 o# ?, _* \' y; f+ R
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];
% \& \6 V, [$ ?$ I9 ?无法证明,只能用具体值来代入验证。
4 W( x# `' P5 Z6 `- ^8 e; Z" u v0 `2 R4 {
5 D* ^5 @( M! X6 v% H |
zan
|