首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Netlogo:邻域内求和

Netlogo:邻域内求和
EN

Stack Overflow用户
提问于 2019-02-06 23:57:33
回答 1查看 127关注 0票数 1

我需要些帮助。我的问题如下

我想要解决下面的公式

sum (Zi - Zj)^2其中Zi是个体i的常量,Zj是在个体i的半径=1的邻域内的通用个体j的值。因此,我想要该半径内每个个体的常量值与Z值之间距离的平方和。

很抱歉没有我的代码,但是我不知道如何处理这个问题

我将写一个例子

个体i的邻域由2个智能体组成,设a和b,其中Za =3,Zb =5

我想要以下结果

(1-3)^2 + (1-5)^2 = 20

谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-02-08 19:25:07

我认为你想做一个常量和一个数字列表之间的平方差之和,其中数字列表是几个海龟的Z值。如果这是正确的,那么下面是一个完整的模型,它可以执行您想要的操作。

代码语言:javascript
复制
turtles-own [ varZ ]

to setup
  clear-all
  create-turtles 40
  [ setxy random-xcor random-ycor
    set varZ random 10
    set color blue
  ]
  testme
end

to testme
  ask one-of turtles
  [ set color red
    let friends other turtles in-radius 4
    ask friends [ set color yellow ]
    type "my varZ is: " print varZ
    type "sum of squared differences is: " print sum-sq-diff varZ [varZ] of friends
  ]
end

to-report sum-sq-diff [#constant #listvals]
  report reduce + (map [ thisval -> (thisval - #constant) ^ 2 ] #listvals)
end

sum-sq-diff过程接受两个输入:一个常量和一个值列表。它计算常量和列表中每个值之间差值的平方和。map计算差值的平方并创建这些值的列表,然后reduce对该列表求和。您可以通过在命令中心输入sum-sq-diff 1 [ 2 3 4 ]来测试is,您将返回14 (即(2-1)^2 + (3-1)^2 + (4-1)^2)。

代码的其余部分是如何在我认为您想要的上下文中使用此过程的示例,将某个半径内的海龟拉出并使用它们的变量值作为列表。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54557681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档