提问人:jdsdog10 提问时间:6/15/2023 最后编辑:jdsdog10 更新时间:6/16/2023 访问量:85
二进制数据的测序概率
Probability of sequence with binary data
问:
假设我有 n 个球,x 蓝色和 (n-x) 红色。如果我一次随机抽取一个球,那么连续抽取一系列 k 个蓝球的概率是多少?
上下文,我正在模拟高尔夫回合。我很好奇连续打出 k+ 小鸟+的概率是多少。我正在使用多项式模拟器在圆形水平上进行模拟,而不是逐个洞进行模拟。所以我想利用我在 18 只小鸟中有 x 只小鸟+的事实,计算出 k+ 连胜存在的概率,然后将该概率放入二项式中,以记录实现连胜的成功/失败。 现在我只是在 R 中使用以下函数,它不是很快(x 是 x+ 小鸟的向量,每个被模拟的球员一个元素)
golf_streak <- function(x,k){
test <- lapply(x, function(i) {sample(c(rep(1, i), rep(0, 18 - i))) })
t <- lapply(test, rle)
as.numeric(sapply(t, function(rl) any(rl$lengths[rl$values == 1] >= k)))
}
X-张贴在这里 https://math.stackexchange.com/questions/4719474/probability-of-sequence-with-binary-data
答:
0赞
jdsdog10
6/16/2023
#1
我仍然没有找到确切的解决方案,但我找到了一个非常有效的计算解决方案。对于 k 的每个值,我运行上述代码 n 次,并存储一个非常大的 n 的成功次数。这为连胜的概率提供了相当好的估计。我将这些值保存在 csv 中,以作为 data.frame 上传,然后连接该表以获得条纹的概率。因此,我不再需要即时计算。不过,如果能得到一个确切的答案,还是会很好。
评论
golf_streak <- function(x){unlist(lapply(x, function(i){rl <- rle(sample(c(rep(1, i), rep(0, 18 - i)))); rl$lengths[rl$values == 1]}))}
k
k
只小鸟,我有s
或更多长度的连胜的概率是多少。如果你把每个洞的问题重新定义为一个独立的事件,“如果我有概率p
得到一只小鸟,我打了18个洞,我得到一个长度为s
或更多的条纹的概率是多少?”数学/模拟可能会变得更容易 - 这里有一个相关的抛硬币问题。但是,如果您想要如上所述的问题的公式答案,我建议您在 math.stackexchange.com 询问,而不是 Stack Overflow。n
n
n = 18
k
k
n
s
A %*% B