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

NetLogo按patch的district属性计算分区获胜turtle变量方法

NetLogo按斑块分区统计政党得票获胜者实现方案

需求说明

  • 斑块(patch)存在两个属性:取值范围0-100的分区编号district、票数votes
  • 海龟主体为政党(party),距离斑块最近的政党获得该斑块的票数
  • 需要针对每个district分区,统计该分区内所有政党的得票总数,标记出得票最高的政党作为该分区获胜者,存入指定变量
  • 现有逻辑已经实现全图范围的斑块-最近政党匹配、政党全图总票数统计,但无法按分区维度完成统计,之前编写的foreach、sort-by逻辑均存在运行错误

已验证可用的基础代码

之前的错误尝试代码

第一次尝试

第二次尝试

正确实现逻辑

之前代码报错的核心原因是遍历顺序错误:不需要在斑块的遍历循环里嵌套分区统计,直接遍历所有分区编号,在单个分区的范围内筛选斑块、统计各政党得票即可,不需要复杂的嵌套列表映射。
完整可运行代码如下,可根据自己的变量存储需求调整:

补充说明

  • 若需要处理同票情况,可在max-one-of逻辑后追加判断,比如平票时随机选择获胜者、按政党固定编号排序选择,避免出现无返回值的异常
  • 如果不想用table扩展,也可以用列表存储[分区号, 获胜者]的键值对,只是查询效率比table低,适合分区数量少的场景
  • 不需要额外给patch新增多余变量,所有统计都基于已经计算好的closest-party属性完成,性能更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 04:36:21