蒙特卡罗模拟8硬币翻转

时间:2018-01-27 16:58:27

标签: r for-loop simulation montecarlo purrr

我试图用蒙特卡罗模拟来解决以下问题

  

让我们说头= 1,尾巴= 0,我翻了8个硬币。所有尾巴的概率是多少?

到目前为止我所拥有的是以下内容

sum(sample(c(0,1),8,replace=T))

这会计算8个样本中的头数。我想运行此1e6次并计算0出现的次数除以1e6。有哪些方法可以在R中实现这一目标?

1 个答案:

答案 0 :(得分:1)

以下是purrr解决方案的大部分内容

set.seed(101)
n <- 1e5
xx <- rerun(n,sample(0:1,8,replace=TRUE)) %>%  map_dbl(sum) 
mean(xx==0)

您可以通过

在功能上完成最后一步
... %>% tibble %>% summarise(prob=mean(.==0))

.是tibble中的单个未命名变量)但感觉有点俗气