我已确定在Netlogo中分散在世界各地的海龟群中的海龟最大数量,以便为所有海龟派生的最大数量的海龟(在所述半径范围内)是结果(分配给变量)。
let corr-peak-density max [count neighbors in-radius 50] of turtles
然而,我现在正试图从世界的起源(起始补丁)到这个最大的海龟或邻居群体的距离,并且失败了。理想情况下,如果我可以编写代码,找到从世界原点到半径函数产生的最大尺寸乌龟簇中心的乌龟或补丁的距离,那将是最好的。但是,我的尝试如此公平却失败了。请帮助使用以下代码行(或其他一些首选方法)来实现此目的。
let corr-peak-density-distance [distance start-patch] of patch[corr-peak-density]
我不确定在上面的代码行中我哪里出错了。
答案 0 :(得分:2)
首先,代码count neighbors in-radius 50
不正确。 neighbors
将报告乌龟周围的8个补丁。由于这些补丁中的所有8个都在乌龟的50个范围内,因此此代码将始终报告8.相反,您需要count turtles in-radius 50
。值得注意的是,这段代码可能会很慢。您可以尝试使用count turtles with [ distance myself < 50 ]
。它的功能基本相同,但使用如此大的半径时应该更快。
接下来,不要只计算峰值密度,让我们把乌龟放在那个星团的中心:
let peak-density-turtle max-one-of turtles [ count turtles with [ distance myself < 50 ] ]
let corr-peak-density [ count turtles with [ distance myself < 50 ] ] of peak-density-turtle
然后,从这只乌龟到起始补丁的距离很简单:
let corr-peak-density-distance [ distance start-patch ] of peak-density-turtle