我们有一个20人的团队.我们想把它们排成一排,让A和B坐在一起.我必须用R语言找出该事件的概率.

我的解决方案是:

f1 <- function() {
  x <- sample(c(1:20), 20, replace = F)
  
  for (i in c(1:19)) {
    
    if (x[i] == 1 && x[i+1] == 2 
        || (x[i] == 2 && x[i + 1] == 1)) {
     TRUE
    }
  }
  
  F
  
}

prob_p <- function(Nrep) {
  rs <- replicate(Nrep, f1())
  sum(rs) / length(rs)
}

prob_p(100000)

我想我的解决方案中有一些错误,因为当我运行这段代码(我使用RStudio)时,概率的结果是0.

你能帮我找出问题出在哪里吗? 如有任何帮助或建议,我们将不胜感激. 提前谢谢您!

推荐答案

f1分到result分,只有return分:

f1 <- function() {
  x <- sample(c(1:20), 20, replace = F)
  result <- FALSE
  for (i in c(1:19)) {
    
    if (x[i] == 1 && x[i+1] == 2 
        || (x[i] == 2 && x[i + 1] == 1)) {
      result <- TRUE
    } 
  }
  
  result # identical to return(result)
}

prob_p <- function(Nrep) {
  rs <- replicate(Nrep, f1())
  sum(rs) / length(rs)
}
prob_p(100000)
[1] 0.0988

R相关问答推荐

提取具有连续零值的行,如果它们前面有R中的有效值

R函数‘paste`正在颠倒其参数的顺序

如何自定义3D散点图的图例顺序?

使用R中的正则表达式将一列分割为多列

如何在R库GoogleDrive中完全删除预先授权的Google帐户?

当我们有多个反斜杠和/特殊字符时使用Gsubing

更改STAT_VALLES/STAT_PEAKS中的箭头线宽/大小

您是否可以将组添加到堆叠的柱状图

按列中显示的配对组估算NA值

观察器中的inaliateLater的位置

是否有可能从边界中找到一个点值?

如何调整一个facet_work()面板内的框图和移动标签之间的水平宽度?

从字符串01JAN2021创建日期

迭代通过数据帧创建直方图

如何使用XPtr

防止data.table将不同长度的向量列表强制转换为data.table

引用数据.R中函数中的表列

如何在R中找到两个大小不等的向量之间的字符串匹配?

如何根据区间的重叠程度对区间进行分类?

如何转置gtsum tbl_sum对象?