我怎样才能随机抽取二项式的东西?

How can I randomly sample binomial thing?

例如, 我想随机排列 0、1(分别为 50%)10 次。 所以,应该有五个“0”和五个“1”。

但是,当我使用时:

rbinom(10,1,0.5)

有时会生成四个“0”和六个“1”。

我注意到 sample() 函数也有这个问题。

应该有五个“0”和五个“1”,顺序随意。

你需要使用sample(),但是这样:

b <- c(rep(0, 5), rep(1, 5))
sample(b)
#  [1] 1 0 1 1 0 0 1 0 0 1
sample(b)
#  [1] 0 1 1 1 0 1 0 0 0 1
sample(b)
#  [1] 0 0 0 1 1 1 0 1 0 1
sample(b)
#  [1] 0 1 0 0 1 0 1 1 0 1

sample 将随机打乱一个向量。所以 sample(rep(c(0,1),5)) 就是你需要的。

快捷方式是:

sample(10) %/% 6
#> [1] 0 0 0 1 1 0 0 1 1 1

我们可以使用bitwAnd + sample

bitwAnd(sample(10), 1)