You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NetLogo中如何为每个turtle计算utilities列表的总和?

NetLogo计算学生效用值总和问题

我用turtle代表学生,patch代表30所学校,给每个学生添加了utilities变量,用于存储每所学校的效用值(每个学生对应30个值),现在无法用新变量计算每个学生这30个效用值的总和。

现有代码

遇到的错误

  • 使用reduce +时报错:'+ expected input to be a number but got the list'
  • 改用sum时,所有学生的cumul值均为0
  • 使用map sum时报错:'SUM expected input to be a list but got the number 0 instead'

问题根源

你错误地尝试对所有学生的utilities列表集合求和,而不是针对当前单个学生自己的utilities列表计算总和。

修正后的代码

直接对当前学生的utilities列表调用sum即可:

补充说明

  • sum utilities:每个学生的utilities是一个数值列表,sum会直接计算该列表内所有数值的总和,完全匹配需求。
  • 之前用sum结果为0,是因为错误地使用了sum [utilities] of turtles这类写法,求和对象变成了所有学生的列表集合,而非单个学生的列表。
  • 也可以用reduce + utilities实现同样效果(reduce +会依次对列表元素执行加法),但sum是NetLogo专门用于计算列表总和的命令,更直观易懂。

内容的提问来源于stack exchange,提问作者Nicola Pensiero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 22:52:06