: \ m& q2 Y w' ]2 d9 Z5 }3 u我在用实际顶点代入验证的基础上证实如下现象,无法用理论解释,个人感到弗洛伊德算法象哥德巴赫猜想一样,无法证明的。 # Q& p, I- ?) [: s. g原来的弗洛伊德算法是: ( F% e- b: M2 r% fFor k:=1 to n . U! D b" T( `For i:=1 to n 3 J' V" T6 q8 |- l( \1 I ?For j:=1 to n/ c& [& s; ?! q4 D6 ]3 t
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];, J3 p9 q) ^, [2 E, h6 L. ?( z
我改成下面的形式,结果具体值代入仍是正确的,当然无法证明: H/ x1 A. C, U5 e' D3 ]+ [
For j:=1 to n; o2 y. E$ G. W. p1 k
For i:=1 to n ) a* ^7 k" B9 _For k:=1 to n & k' _. t S: V' Z8 a" L6 W _If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];* @' D. t3 x" E9 E% B! N9 _$ ~
我再改成如下形式,结果仍是正确的: & U$ Y( F( C1 W/ zFor j:=1 to n ! _" |7 L) K3 w- lFor i:=1 to j-1* s8 _' m. C$ K# D- f# H; T
For k:=1 to n # j' T' h' f/ ^1 [9 S- ?2 X$ G/ cIf D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j]; % P0 M1 ~, U. |2 M3 P; R如果我改成如下形式,结果出错,不行了: j7 L. f1 Z0 ~' r% MFor j:=1 to n & l5 w' }: N; i% U& AFor i:=j+1 to n 4 ? ~' U# [, ]8 OFor k:=1 to n2 T$ h2 o W y4 K5 S
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];" j9 z- W) z8 o+ {
无法证明,只能用具体值来代入验证。( R9 l# |" N# [# l# \9 c
8 U+ W0 ?" z( b