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

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

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

最佳答案

在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(相同的行为,使用不同的名称)。 Simon对rand(Bool,100)的回答有效,但它给出了Array{Bool}而不是BitArray-一种特殊的数据类型,它仅对每个 bool 值使用一点就紧凑地存储 bool 值数组。

10-08 03:43
查看更多