根据条件从列表中选择一项

时间:2019-10-06 23:06:37

标签: netlogo

我有一个由邻居列表中的元素组成的代理列表。我需要根据一个参数从中选择一个项目:参数h越高,选择该项目的可能性就越大。

要选择我尝试过的项目:print one-of list,其中列表包含从邻居(set list lput item list)收集的所有项目。

但是,我不知道如何添加有关参数的条件。 我尝试使用max (list item),但这不考虑参数h的值(它可以取1到10的值)。

您能建议我如何考虑吗? 非常感谢

1 个答案:

答案 0 :(得分:2)

rnd扩展名完全可以满足您的需求。将extensions [rnd]放在代码的顶部。然后使用rnd:weighted-one-of-list进行选择。这是一个完整的程序演示。将其放在空的NetLogo模型中,然后运行testme过程几次。

extensions [rnd]
to testme
  let mylist [1 3 5]
  repeat 10
  [ type rnd:weighted-one-of-list mylist [ [ii] -> ii ]
    type " "
  ]
end