【问题标题】:Netlogo: Calculate average of turtles-own listNetlogo:计算海龟拥有列表的平均值
【发布时间】:2016-01-18 19:14:18
【问题描述】:

我有 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

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

那么我如何计算所有海龟拥有的列表的平均列表?

【问题讨论】:

  • 平均列表是否意味着结果列表具有来自每个海龟的平均坐标?
  • 很抱歉说得不太清楚,但是是的,我是这么想的。例如。如果有 5 只海龟,新的 x 和 y 坐标应该是每只海龟的 x 坐标 / 5 和每只海龟的 y 坐标 / 5
  • 徽标? :D 喜欢你的旧时光

标签: list netlogo


【解决方案1】:

这是一个非常简单的解决方案,它创建一个大小为路径长度的列表,其中第 ? 个元素是第 ? 个元素(坐标)的所有海龟第 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 
  ]

【讨论】:

  • NetLogo 目前缺少一个有用的函数式编程结构。 (对不起,这个评论真的只是给赛斯的。)
猜你喜欢
  • 2014-05-25
  • 1970-01-01
  • 1970-01-01
  • 2019-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多