我正在创建一个总体记者(由几个记者组成),我想对一个海龟附近的所有海龟进行操作。
如下: (((function1 neighbour1 * function2 neighbour1)+(function1 neighbour2 * function2 neighbour2)+(function1 neighbour3 * function2 neighbour3)............)/(function1 neighbour1 + function1 neighbour2 + function1 neighbour2 ........) )无论多少邻居都在单龟附近找到了。
从帖子的阅读中,我认为地图原语在这里可能是最有帮助的。然而,我遇到的麻烦是我不知道怎么写?1到?n。
我所知道的是,根据有多少海龟徘徊到这个社区(例如,有时候我有4个邻居,然后是7个,然后是1个等),它们会有所不同。
拜托,如果有人知道怎么写1?...... n?并且可以告诉我,或者告诉我一些相关信息,请告诉我。
感谢您的时间。
答案 0 :(得分:2)
你不会说邻居是如何存储的。如果他们在列表中,您需要map
。但我认为它们存储在代理集中,因为它在NetLogo中惯用于尽可能使用代理集。
您提到了map
。通常使用代理集,您不需要map
;你只需使用of
。
假设乌龟的邻居海龟存储在名为my-neighbors
的代理集中,那么你写下:
sum [function1 self * function2 self] of my-neighbors
假设function1
和function2
是期望代理作为输入的过程。如果他们没有输入过程,那只是由某个代理运行,那么代码就更简单了:
sum [function1 * function2] of my-neighbors