2

我正在尝试组合一个有趣的应用程序,该应用程序有一个场景,我需要找出以下场景的概率方程:

假设我对某事进行了多次尝试,并且每次尝试都有成功率(提前知道)。在做了所有这些尝试之后,成功发生的几率是多少?

例如,有 3 次尝试(都将单独进行)。

第一个已知有 60% 的成功率。第二个已知有 30% 的成功率。第三个已知有75%的成功率。如果所有三个尝试都进行,成功的几率是多少?

我已经尝试了几个公式,但无法确定正确的一个。

谢谢您的帮助!

4

3 回答 3

9

获胜的概率是不输所有三个的概率:1 - (1 - 0.6) (1 - 0.3) (1 - 0.75)

于 2009-07-31T22:33:45.110 回答
5

1 - .4 * .7 * .25

也就是说,找出所有尝试都失败的概率,并将其反转。所以一般来说,给定概率为 P[i] 的有限事件序列,至少一个事件成功的概率是 1 - (1 - P[0]) * (1 - P[1]) * ... * (1 - P[n])

这是一个计算值的 perl 单行代码:(输入是成功率的空格分隔列表)

perl -0777 -ane '$p=1; $p*=1-$_ foreach @F; 打印 1-$p 。"\n"'
于 2009-07-31T22:31:04.617 回答
2

计算“所有失败”的机会(所有 1-pj 的乘积,其中 pj 是第 j 个成功机会 - 将概率表示为除 0 和 1 之间的数字之外的任何数字的概率计算是疯狂的,所以如果你绝对需要百分比而不是输入或输出在开始或结束时进行转换!)并且“至少 1 次成功”的概率是 1 减去该乘积。

编辑:这里有一些可执行的伪代码——即 Python——以百分比作为输入和输出,使用您的数字(原始数字和您在评论中更改的数字):

$ cat proba.py
def totprob(*percents):
  totprob_failure = 1.0
  for pc in percents:
    prob_this_failure = 1.0 - pc/100.0
    totprob_failure *= prob_this_failure
  return 100.0 * (1.0 - totprob_failure)
$ python -c'import proba; print proba.totprob(60,30,75)'
93.0
$ python -c'import proba; print proba.totprob(2,30,75)'
82.85
$
于 2009-07-31T22:32:04.910 回答