【问题标题】:Students standing in a line学生们站成一排
【发布时间】:2018-12-07 22:29:15
【问题描述】:

所以我正在研究一个统计问题,问题是“六个孩子排队。他们按姓名字母顺序排列的概率是多少?假设没有两个孩子的名字完全相同。”我在 R 中使用 sample() 和 rle() 函数,但我对如何计算概率感到困惑。我可以寻求帮助吗?

这也是我到目前为止的代码:

kids <- sample(c("A", "B", "C", "D", "E", "F"), 6, replace = TRUE)
table(kids)
head(kids)
rle(c("A", "B", "C", "D", "E", "F"))
kids.rle <- rle(kids)
str(kids.rle)
sort(kids.rle$lengths, decreasing = TRUE)

【问题讨论】:

  • 我认为您可以使用排列:找出排列六个项目(名称)的方法有多少种,然后它们按特定顺序(即字母顺序)的概率将为 1/(此概率)
  • 我认为6个学生可以用6种不同的方式站立,是1 / factorial(6)

标签: r statistics probability


【解决方案1】:

正如@YOLO 所说,理论概率是1 / 720,可以在R 中计算为1 / factorial(6)。但是,您也可以在头脑中轻松计算出它。如果您想运行一个小型模拟以显示观察到的概率随着重复次数的增加而收敛到理论概率,那么计算能力就会派上用场:

kids_ordered <- c("A", "B", "C", "D", "E", "F")

n <- 1000000 # number of repetition
result <- rep(NA, n) # vector to hold outcomes

set.seed(147) # seed for reproducibility

# reorder kids n times and check if the outcome is in alphabetical order each time
for(i in seq_len(n)) {
  result[i] <- all(sample(kids) == kids_ordered)
}

# compute the probability
mean(result)
# [1] 0.001376

结果非常接近1 / 720 = 0.001389

【讨论】:

    猜你喜欢
    • 2021-09-20
    • 2019-03-19
    • 1970-01-01
    • 1970-01-01
    • 2022-12-10
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    相关资源
    最近更新 更多