我正在尝试整理一个有趣的应用程序,其中有一个场景我需要找出以下场景的概率等式:
假设我有一些尝试,并且每次尝试都有成功率(提前知道)。在做了所有这些成功发生的尝试后,几率是多少?
例如,有三次尝试(所有尝试都将单独进行)。
众所周知,第一个成功率为60%。 已知第二个成功率为30%。 众所周知,第三个成功率为75%。 如果完成所有三次尝试,成功的几率是多少?
我尝试了几个公式,无法确定正确的公式。
感谢您的帮助!
答案 0 :(得分:9)
获胜的可能性是不会失去所有三个的概率: 1 - (1 - 0.6)(1 - 0.3)(1 - 0.75)
答案 1 :(得分: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; print 1-$p . "\n"'
答案 2 :(得分: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
$