random - Netlogo 不同概率的随机采样

标签 random netlogo

NetLogo中有没有一种方法可以为数组中的每个项目关联一个概率值并随机选择n个项目?如下所示的函数。

let names ["pooh", "rabbit", "piglet", "Christopher"]
let probs [0.5, 0.1, 0.1, 0.3]
n-random-select 5 names probs

>>["pooh", "pooh", "pooh", "Christopher", "piglet"]

在Python中numpy.random.choice正是这样做的。

最佳答案

这正是内置 rnd 扩展的用途:https://ccl.northwestern.edu/netlogo/docs/rnd.html

rnd:weighted-n-of-list-with-repeats是你想要的原语。它比 numpy.random.choice 更灵活一些,但也更麻烦一些。您可以像这样编写n-random-select:

to-report n-random-select [ n xs weights ]
  report map first rnd:weighted-n-of-list-with-repeats n (map list xs weights) last
end

像这样使用它(记住,netlogo列表中没有逗号):

observer> show n-random-select 5 ["pooh" "rabbit" "piglet" "Christopher"] [0.5 0.1 0.1 0.3]
observer: ["pooh" "pooh" "pooh" "Christopher" "Christopher"]
observer> show n-random-select 5 ["pooh" "rabbit" "piglet" "Christopher"] [0.5 0.1 0.1 0.3]
observer: ["pooh" "Christopher" "Christopher" "Christopher" "Christopher"]
observer> show n-random-select 5 ["pooh" "rabbit" "piglet" "Christopher"] [0.5 0.1 0.1 0.3]
observer: ["rabbit" "rabbit" "rabbit" "piglet" "Christopher"]

关于random - Netlogo 不同概率的随机采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50878873/

相关文章:

php - 显示后从MYSQL中删除PHP数据

c++ - 为什么 uniform_int_distribution 是闭域而 uniform_real_distribution 是半开域?

netlogo - 在 NetLogo 中组合和格式化列表

NetLogo,关于否定(绝对补码)和 HubNet 以及 hubnet-send-override 的问题

r - 为什么重要性参数会影响 R 中随机森林的性能?

c++ - 静态随机数生成器丢失全局变量的种子

python - 多个海龟,多个随机移动

netlogo - 在netlogo中模拟结婚

r - NetLogo - 与导入的 GIS shapefile 不一致

list - NetLogo 根据列表值创建海龟