【发布时间】:2018-05-21 13:13:38
【问题描述】:
你好,
在 Netlogo v.6 中,我试图计算对等点合作行为的时间加权度量。关键是,我不知道如何在 NetLogo 中进行嵌套 foreach。
我目前的做法:
- 设置列表:reputation_peer
- 设置一个列表:reputation_peer_list,变量 1(行为)和变量 2(时间刻度)
- 每次遭遇,将reputation_list 添加到reportation_peer,使reputation_peer 成为列表列表
- 计算加权信誉:
- 在reputation_peer 中获取每个列表的第2 项,这是该遭遇的时间滴答
- 除以当前时间刻度。
- 这给出了一个分数:那次遭遇的滴答声/总时间滴答声
- 设置一个名单reputation_weighted
- 为了衡量信誉,将时间分数乘以信誉_peer的第一项,即行为变量
- 然后,我想知道当前的信誉,方法是从信誉加权中获取所有值并将它们相加。
我正在搞乱 foreach 函数,但我似乎无法弄清楚。 在 Netlogo 中如何编码这种方法?
我当前的代码是(自己设置reputation_peer来测试它):
to calculate_reputation
set reputation_peer [[8 4][9 2][10 3][11 2][14 1]]
if ticks > 0 [
foreach reputation_peer [x -> set reputation_peer_list list (item 0 x) ((item 1 x) / ticks )
set reputation_peer_list_2 lput reputation_peer_list reputation_peer_list_2]
foreach reputation_peer_list_2 [x -> set reputation_peer_list_list (list (item 0 x * item 1 x))]
foreach reputation_peer_list_list [x -> set reputation_peer_current reputation_peer_current + x]
]
end
我真的不知道我是否做得对,但主要是,这段代码看起来非常庞大,所有 list_list 的事情都在进行。我猜它可能会简单得多。
如果你们有一些建议,将极大地帮助我。
【问题讨论】:
标签: list foreach nested netlogo