我新调试好的程序如下,应该是对的,供参考
- o2 } w- N6 y, T9 x* u3 t- o因为特殊要求,这里的边的长度是二维座标内的空间距离
( E" N9 B3 ^2 }% k
) P/ y& l4 X0 b( a* y, T1 Sto find-distance( F" {" n/ Y8 W; L6 S# [
let i 0
3 l: i5 V% x. E# ^4 I M- } let j 0
0 y, [/ m+ m/ w# ` let nodedistance 0: ^; A4 b1 l3 t) G! X( l. A0 I$ G: p
let linknumber 0# c0 N* f( d1 n7 p3 `/ S+ N( Y- @$ l
% A5 W' x+ X: e' b while [j < count turtles]( O( h, M6 V# r9 H1 P
[5 ]2 R: N$ ~2 |2 Y9 d7 I+ r
while [i < count turtles]2 [* a; U y0 K4 d! \
[ if link-neighbor? turtle i
7 g5 z! c6 [9 F, W# I& Q5 }/ b [ask turtle j [set nodedistance nodedistance + distance turtle i]
! l( E# [2 E* d1 s2 E. \! t1 [4 l$ i ask turtle j [set linknumber linknumber + count [link-neighbors] of turtle i]7 U" f, @5 ^4 d4 y9 R
]
. S9 @1 Z) u. @6 k' B set i i + 1
0 S3 z1 S# o9 [ ]
, ~2 h: k# P7 ?& O, P5 R; } set j j + 12 w: p# a8 g' [- Q5 p+ y
]
/ ?( D6 n9 Y5 t" \/ ?/ e8 | set average-path-length nodedistance / (linknumber * 2)
+ m; q; `, |# m8 Mend |