如何映射?1到?n

时间:2014-09-04 10:43:01

标签: function netlogo

我正在创建一个总体记者(由几个记者组成),我想对一个海龟附近的所有海龟进行操作。

如下: (((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?并且可以告诉我,或者告诉我一些相关信息,请告诉我。

感谢您的时间。

1 个答案:

答案 0 :(得分:2)

你不会说邻居是如何存储的。如果他们在列表中,您需要map。但我认为它们存储在代理集中,因为它在NetLogo中惯用于尽可能使用代理集。

您提到了map。通常使用代理集,您不需要map;你只需使用of

假设乌龟的邻居海龟存储在名为my-neighbors的代理集中,那么你写下:

sum [function1 self * function2 self] of my-neighbors

假设function1function2是期​​望代理作为输入的过程。如果他们没有输入过程,那只是由某个代理运行,那么代码就更简单了:

sum [function1 * function2] of my-neighbors