获得概率ķk在 4 和 2 个问题的考试中回答正确ñN可能的科目?

机器算法验证 可能性 组合学
2022-04-20 12:38:27

问题

我被困在一个“娱乐”问题上。这不是家庭作业。

学生必须参加考试N可能的科目。考试分为两个部分,AB. 部分A有 4 个问题,每个问题都针对不同的主题。部分B有2个问题。学生最多可以回答部分 4 个问题中的 3 个A和部分中最多 2 个问题中的 1 个B. 因此,学生在考试中可以正确回答的最大答案数为 4。

第 4 和第 2 部分科目AB无需更换即可从N可能的科目。没有主题同时出现在两个部分中。

考试前,学生学习KN科目与KN. 如果学生学习了一个特定的科目,我们假设他可以正确回答该科目的问题。

学生能回答的概率是多少k当他准备好后在考试中的答案K科目(k4)?

我试过的

我认为,这两个部分都可以通过超几何分布建模。所以对于部分An=4我们有:

P(X=k)=(Kk)(NK4k)(N4)

但我不确定如何进行以及如何将这两个部分建模在​​一起。

任何帮助表示赞赏。谢谢你。

1个回答

将考试的每个部分视为包含从一个骨灰盒中多次抽取(无替换)的结果。骨灰盒包含K学生学习的N - K科目,以及他/她跳过的科目。J = N - K,为方便起见。

A 部分包含学生学习的 0 到 4 个科目,而 B 部分包含 0 到 2 个此类科目。

现在,对于这 15 种可能的组合中的每一种,考虑该k组合产生的值:

k = 0: 0 correct on part A, 0 correct on part B
k = 1: 0 correct on part A, 1 or 2 correct on part B, OR
       1 correct on part A, 0 correct on part B
k = 2: 1 correct on part A, 1 or 2 correct on part B, OR
       2 correct on part A, 0 correct on part B
k = 3: 2 correct on part A, 1 or 2 correct on part B, OR
       3 correct on part A, 0 correct on part B, OR
       4 correct on part A, 0 correct on part B
k = 4: 3 correct on part A, 1 or 2 correct on part B, OR
       4 correct on part A, 1 or 2 correct on part B

此时,只需对 的每个值求和配置的概率即可kf(k, K, J, n)为超几何分布的 pmf,k绘制白球,瓮中的K白球和J黑球,以及n整体绘制的球。那么概率是:

k = 0: f(0, K, J, 4) * f(0, K, J - 4, 2)
k = 1: f(0, K, J, 4) * (f(1, K, J - 4, 2) + f(2, K, J - 4, 2)) +
       f(1, K, J, 4) * f(0, K - 1, J - 3, 2)
k = 2: f(1, K, J, 4) * (f(1, K - 1, J - 3, 2) + f(2, K - 1, J - 3, 2)) +
       f(2, K, J, 4) * f(0, K - 2, J - 2, 2)
k = 3: f(2, K, J, 4) * (f(1, K - 2, J - 2, 2) + f(2, K - 2, J - 2, 2)) +
       f(3, K, J, 4) * f(0, K - 3, J - 1, 2) +
       f(4, K, J, 4) * f(0, K - 4, J, 2)
k = 4: f(3, K, J, 4) * (f(1, K - 3, J - 1, 2) + f(2, K - 3, J - 1, 2)) +
       f(4, K, J, 4) * (f(1, K - 4, J, 2) + f(2, K - 4, J, 2))

我假设不支持分布的概率仅为 0(例如 where k > K)。

正如 Joel W. 在评论中所说,概率是棘手的,总是值得用模拟检查你的工作。这是我的 R 代码(N设置为 25 和K17;您当然可以将它们设置为您想要的任何值):

N <- 25
K <- 17

answered <- sapply(1:300000, function(i) {
    subjects <- seq(from = 1, to = N)
    studied <- sample(subjects, K)

    asked <- sample(subjects, 6)
    asked.1 <- asked[1:4]
    asked.2 <- asked[5:6]

    answerable.1 <- sum(is.element(asked.1, studied))
    answerable.2 <- sum(is.element(asked.2, studied))

    answered.1 <- min(answerable.1, 3)
    answered.2 <- min(answerable.2, 1)

    answered.1 + answered.2
})

table(answered) / length(answered)

运行上面,我得到了这些观察到的比例:

k = 0: 0.00016
k = 1: 0.00910
k = 2: 0.09298
k = 3: 0.34898
k = 4: 0.54879

同时,使用 R 评估上述概率(用 25 和 17 代替 N 和 K),我得到:

k = 0: 0.00016
k = 1: 0.00896
k = 2: 0.09318
k = 3: 0.34762
k = 4: 0.55009

我认为,足够好的协议可以证明我的解决方案。(幸运的是,概率总和为 1,忽略了一点舍入误差。)

我意识到一个单一的整体公式会比我上面采用的基于表格的方法更令人满意。不幸的是,我无法想出一个简洁、易读的公式来封装所有不同的总和。我认为可回答问题和已回答问题之间的区别确实使问题复杂化,但很可能是概率/组合学更熟练的人可以找到一种方法将各种总和表达为一个简单的公式。