Netlogo:计算 turtles-own 列表的平均值

Netlogo: Calculate average of turtles-own list

我有 2 到 10 只乌龟记得回家的路。海龟的坐标每刻保存到列表 path

to path-tracker
  let x xcor                     ;; gets the current coordinates
  let y ycor
  facexy x y
  setxy x y
  set path lput (list x y) path       ;; adds the coordinate pair (x,y) to the end of the path
end

当海龟都到达目标时,程序停止并回到它们开始的地方。现在另一个程序开始,他们不应该遵循自己的路径,而是应该遵循所有路径的平均路径。

那么如何计算所有 turtle-own 列表的平均列表?

这是一个非常简单的解决方案,它创建了一个大小为 path-length 的列表,其中第 5 个元素是第 3 个元素的所有海龟的第 0 项(x 坐标)的平均值的列表(坐标)第一个元素(坐标)的所有乌龟的第一项(y 坐标)的(坐标)和平均值:

 let path-length (length [path] of one-of turtles)
 let average n-values path-length [
   (list  (mean [(item 0 (item ? path)) ] of turtles)
          (mean [(item 1 (item ? path)) ] of turtles))]

如果你不喜欢它被如此压缩,你可以使用下面的方法来达到相同的结果。

  let average-path (list)
  foreach (n-values path-length [?])
  [
    let meanx (mean [(item 0 (item ? path)]] of turtles)
    let meany (mean [(item 1 (item ? path)]] of turtles)
    set average-path lput (list meanx meany) average-path 
  ]