- 在线时间
- 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
- 自我介绍
- 软件开发工程师
 |
关于弗洛伊德算法发现的怪现象:+ M8 F: v! ?. f& W0 y
7 b2 }- }6 Y9 s" N5 y% {4 H
我在用实际顶点代入验证的基础上证实如下现象,无法用理论解释,个人感到弗洛伊德算法象哥德巴赫猜想一样,无法证明的。
: F( I+ W5 H$ h. A原来的弗洛伊德算法是:
2 O/ Q8 G f- UFor k:=1 to n3 x s& G: [8 o$ Q( W
For i:=1 to n
3 v9 |8 e* {( R6 Y8 ^: o4 \( a$ P& JFor j:=1 to n
5 `) Q; o- Q' b- I% ZIf D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];
2 p, ]- ?2 n. I我改成下面的形式,结果具体值代入仍是正确的,当然无法证明:
5 c. e$ A% d6 z9 }For j:=1 to n& |1 t) i! I! `2 Y$ L
For i:=1 to n6 E- X* E `* f' c
For k:=1 to n: h/ v' s2 E+ ]9 y
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];
* P# [* {9 {6 {7 N/ [" M+ g$ s. p/ f我再改成如下形式,结果仍是正确的:
3 v5 g2 S- T% f. @; _: _For j:=1 to n
0 y4 u: [% ~( \/ S2 u9 e; V8 o# GFor i:=1 to j-1
" ]$ H# F& a: CFor k:=1 to n" K+ C8 h( \, ?4 u
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];
5 T; [7 s# ^0 Y+ A2 O( {如果我改成如下形式,结果出错,不行了:
. O4 c* C. A4 i. h$ E$ ~4 ~For j:=1 to n2 R$ P/ H; \- _6 R7 N ]
For i:=j+1 to n x$ I- W% D, I: x* m+ v
For k:=1 to n: S( E9 U" X" H2 m5 x. |/ G6 d% T
If D[i,j]>D[i,k]+D[k,j] Then D[i,j]:=D[i,k]+D[k,j];
! t" ~9 F. I. [ B6 K( X. ?无法证明,只能用具体值来代入验证。" m0 U1 ?8 K% Y) {$ O# ], C
4 j# Y& ~; r7 q. n3 o
6 d+ w8 A6 a6 h" p6 T7 x4 i& K" X
|
zan
|