如何在 Netlogo 中创建随机二进制/布尔变量

use*_*742 1 random agent-based-modeling netlogo

我想为每只海龟分配一个随机布尔变量,但我没有看到一个可以模拟伯努利分布绘制的函数。

这很接近,但很尴尬:

ifelse random-in-range 0 1 < .5 [set expensive? false]
[ set expensive? true ]
Run Code Online (Sandbox Code Playgroud)

有人知道更好的方法吗?

Bry*_*ead 5

几个选项:

  • one-of [ true false ]

  • random 2 = 1

  • random-float 1 < 0.5 - 如果您需要修改概率,以获得您想要的任何伯努利分布

如果我在模型中处理很多概率性的东西,我喜欢添加

to-report probability [ p ]
  report random-float 1 < p
end
Run Code Online (Sandbox Code Playgroud)

作为一个简单的速记。

另请注意,ifelse代码中的是多余的。您可以只做set expensive? one-of [ true false ]或您喜欢的任何一种方法。