Function 如何将?1映射到?n

Function 如何将?1映射到?n,function,netlogo,Function,Netlogo,我正在创建一个总体报告员(由两名报告员组成),我希望对一个海龟社区内的所有海龟进行操作 详情如下: ((function1 Neight1*function2 Neight1)+(function1 Neight2*function2 Neight2)+(function1 Neight3*function2 Neight3)…)/(function1 Neight1+function1 Neight2+function1 Neight2)…)/(function1 Neight2+functi

我正在创建一个总体报告员(由两名报告员组成),我希望对一个海龟社区内的所有海龟进行操作

详情如下: ((function1 Neight1*function2 Neight1)+(function1 Neight2*function2 Neight2)+(function1 Neight3*function2 Neight3)…)/(function1 Neight1+function1 Neight2+function1 Neight2)…)/(function1 Neight2+function1 Neight2+function1 Neight2)…)一路走来,但在一只乌龟的邻里可以找到许多邻居

从阅读的帖子来看,我认为地图原语在这里可能是最有用的。然而,我遇到的麻烦是,我不知道如何从?1到?n书写

我所知道的是?n的不同取决于有多少海龟在附近游荡(例如,有时我有4个邻居,然后是7个,然后是1个等等)

拜托,如果有人知道怎么写1?…n?如果你能给我一些建议,或者直接告诉我一些相关的信息,请告诉我


谢谢您抽出时间。

您没有说邻居是如何储存的。如果它们在一个列表中,您可能需要
map
。但我假设它们存储在一个agentset中,因为NetLogo习惯于尽可能使用agentset

您提到了
map
。通常使用AgentSet时,您不需要
map
;您只需使用的

假设海龟将它的邻居海龟存储在一个名为
my Neights
的代理集中,那么您可以编写:

sum [function1 self * function2 self] of my-neighbors
这是假设
function1
function2
是期望代理作为输入的过程。如果它们不是输入过程,只是要由某个代理运行,那么代码就更简单了:

sum [function1 * function2] of my-neighbors

你好对不起,没有提及。我将我的邻居存储为代理集,使用“让邻居乌龟集半径邻居中的其他乌龟”我刚刚尝试了我邻居的非常有用的总和[function1*function2],但我收到一个错误,它希望输入是一个数字,但得到了一个列表。我现在会继续努力的,谢谢你。你希望输入什么数字?地图之类的。这很重要。此外,您不需要在radius和其他两个返回代理集合中的“半径邻居中的其他海龟”上使用海龟集。非常清楚地了解您使用的记者的输入和输出所期望和返回的内容总是有帮助的。大家好。赛斯是绝对正确的。我一直将我的邻居存储为代理集,我的过程期望代理作为输入。但是,我认为我没有正确地编写公式,因为函数实际上需要两个代理。更正确的版本是((功能1[我自己的邻居1]*功能2[我自己的邻居1])+(功能1[我自己的邻居2]*功能2[我自己的邻居2])+(功能1[我自己的邻居3]*功能2[我自己的邻居3])/(功能1[我自己的邻居1]+功能1[我自己的邻居2]+功能1[我自己的邻居2]……))理查德,我想你指的是标签而不是,对吗?如果是,请回答您的问题并重新标记:)你好,乌诺。对不起,我是说Netlogo中的海龟程序。我现在就重拍。谢谢