创建一个随机数组 True/False

Create a array of random True/False

这是我目前正在做的事情:

a = trues(100)
for i in 1:length(a)
   a[i] = rand()>0.5 ? true : false
end

是否有更好(更快)的解决方案?

我还没有对它进行基准测试,但最快的选择似乎是:

a = rand(Bool,100,1)

...请参阅 Multi-dimensional Arrays 上的 Julia 文档页面底部。

在 Julia 0.4 中你可以这样写 bitrand(100):

julia> bitrand(100)
100-element BitArray{1}:
  true
  true
 false
 false
  true
     ⋮
  true
 false
  true
  true
  true

您可以使用旧版本 Julia 中的 Compat 包来获取它,或者您可以使用旧名称 randbool(相同的行为,不同的名称)。西蒙对 rand(Bool,100) 的回答有效,但它给出了 Array{Bool} 而不是 BitArray – 一种特殊的数据类型,每个布尔值仅使用一个位来紧凑地存储布尔数组。