在 R 中投掷 3 个公平的硬币

Tossing 3 fair coins in R

X = # of heads showing when three coins are tossed.
Find P(X=1), and E(X).

说,我想在 R 中使用 sample()replicate() 函数来解决这个问题,即使有一个名为 rbinom().

的函数

我的尝试:

noOfCoinTosses = 3;
noOfExperiments = 5;
mySamples <-replicate(noOfExperiments,
                    {mySamples <- sample(c("H", "T"), noOfCoinTosses, replace = T, prob=c(0.5, 0.5))
                    })
headCount = length(which(mySamples=="H"))
probOfCoinToss <- headCount / noOfExperiments   # 1.6
meanOfCoinToss = ??

关于 P(X),我的方向是否正确?如果是,我如何找到 E(X)?

mySamples 中的结果按列存储实验,因此您必须计算每个列的 head 出现次数。概率就是实验的频率/nr,而在这种情况下的平均值是频率:

noOfCoinTosses = 3;
noOfExperiments = 5;
mySamples <-replicate(noOfExperiments,
                      {mySamples <- sample(c("H", "T"), noOfCoinTosses, replace = T, prob=c(0.5, 0.5))
                      })
headCount <- apply(mySamples,2, function(x) length(which(x=="H")))
probOfCoinToss <- length(which(headCount==1)) / noOfExperiments   # 1.6
meanOfCoinToss <- length(which(headCount==1))

当你想计算一个真实的平均值时,你可以将其放入一个函数中并复制 n 次。然后均值将成为复制的平均值meanOfCoinToss