我新调试好的程序如下,应该是对的,供参考9 g* O- M/ a2 z; R# V' b
因为特殊要求,这里的边的长度是二维座标内的空间距离. k9 q: `( F5 w) e
Z; r3 t$ U% R/ M) v8 D, C, t
to find-distance
9 E! b" A, z7 m9 l3 ] let i 0
5 h* I' D& l' r7 b) |: d' I& Y. ] let j 0
5 ^1 b6 A2 d, l) n let nodedistance 0
5 } K6 i; S; |" V: U( n let linknumber 0
7 Z5 M8 h; g/ ]$ l3 p8 l5 b; N 3 |- a; U1 `, r
while [j < count turtles]
+ u5 a6 j9 w. b( g [" Y# A+ d, _; z- e0 E
while [i < count turtles]5 S0 @" L2 n' R/ \5 X# r
[ if link-neighbor? turtle i
+ Z2 B1 s& ~/ \# K4 i+ n2 l [ask turtle j [set nodedistance nodedistance + distance turtle i]
( C X. r: G" s. ^) Y+ w1 D9 b8 q ask turtle j [set linknumber linknumber + count [link-neighbors] of turtle i]
1 x5 G' m9 r0 g' _! Z) s3 Q ]
2 i4 @) p8 h2 Y8 w. s3 H set i i + 1
% Q' g, l0 O% V ]
4 Y+ C- E9 D* Z( Q1 z K% M set j j + 1- R+ ^& L* z# b' x K+ X
]
" M; t- w) e0 J7 ?2 h set average-path-length nodedistance / (linknumber * 2) }* M o0 K, _" L& i4 ~& _7 z& x) z
end |