" w, _/ Q) E* V, A8 w我在用实际顶点代入验证的基础上证实如下现象,无法用理论解释,个人感到弗洛伊德算法象哥德巴赫猜想一样,无法证明的。 1 b6 O/ k5 J5 L: a, _2 D原来的弗洛伊德算法是: 1 s+ t6 ]. O- N0 lFor k:=1 to n 7 s Z A. u% s* @8 _4 }For i:=1 to n% v2 C; w! I6 J; Z' t! R, ~
For j:=1 to n: a! D: p' E5 E
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j]; " H- Q" E( ] B: Z* ^) _我改成下面的形式,结果具体值代入仍是正确的,当然无法证明:( h* w! i" x( [. [1 P; T3 _$ m8 H
For j:=1 to n ) K, f$ e( m- J' T3 p! S3 AFor i:=1 to n A# ^) ~% Y1 v _. p) E3 S
For k:=1 to n * n2 ~8 o# ~$ J7 RIf D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j]; $ Q! `: T& {* s$ i) N; K2 N我再改成如下形式,结果仍是正确的: ; v3 F j E5 m |1 @For j:=1 to n6 b# N' l( |: r c
For i:=1 to j-12 ]3 }, H1 A; t0 o' B
For k:=1 to n / i( G3 ~0 ^; W: y$ rIf D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];- {, c" q' G/ n5 f( u
如果我改成如下形式,结果出错,不行了:6 @" w7 `$ x' g- i
For j:=1 to n ( F2 `( G$ B. t/ O) R+ P9 t( fFor i:=j+1 to n. I4 x; D1 A9 |4 O- i2 H) [& `
For k:=1 to n 2 e! v2 |# J# SIf D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];' b/ j% m( q( K) _
无法证明,只能用具体值来代入验证。$ Y6 R O' V3 b. g: I$ J. J# y
( `% D8 `0 Y6 y/ t