给定一个不均匀概率列表,至少发生一次的机会是多少?

3

我正在编写一个Python程序,它有一个概率列表。每个概率代表一个事件的灾难性结果:

# doing six different events, the array is the risk of each having a bad outcome:
list = [0.2, 0.1, 0.4, 0.3, 0.2, 0.4]

每个事件都可以发生一次或多次,它们的顺序无关紧要。多个事件可能具有相同的概率。如何计算这些事件中一个或多个发生的机会?很抱歉如果这是一个基本问题。我已经很多年没有接触过这样的问题了,当我搜索时术语很难理解。Khan Academy似乎也没有提供答案。如果答案很简单,只告诉我该搜索什么就足够了。提前感谢!(:)

“0.2”是指第一个事件发生一次的概率,还是发生一次或更多次的概率? - Andrew Clark
如果每个十进制数(0.2、0.1等)都是事件发生一次的概率,并且所有事件彼此独立(包括它们自身),请参见http://en.wikipedia.org/wiki/Geometric_series#Sum。 - thkang
3个回答

5
这个问题的一个好的思考方式是考虑相反的问题:这些事件都不发生的概率是多少?也就是说,事件1不发生且事件2不发生等等的概率是多少。
这只是每个概率的乘积,即(1-p1)*(1-p2)*...,得到一个概率p_none。然后取它的相反数:(1-p_none),这就是一个或多个事件发生的概率。

谢谢,这很合乎逻辑,也是一个好答案。我猜这很基础,就像我想的一样 (; - knut

2

基本上,你想要的是1减去发生任何事件的概率,这很容易。从1开始,通过列表,乘以1-数字:

伪代码:

result = 1
foreach item in list
  result = result * (1 - item)
end foreach
return 1 - result

1
你忘记了最后一步,即返回(1-result)。这将给你一个没有事件发生的机会。 - sfendell

1
如果列出的概率是每个事件发生一次或多次的概率,那么这个公式就可以使用:
发生1次或多次的概率 == 1.0 - 没有一个事件发生的概率
没有任何事件发生的概率 = 每个事件i都不发生的概率的乘积
事件i不发生的概率 = 1.0 - 事件i发生的概率
当然,这假设每个事件类别是独立的。
所以在你的情况下,概率 = 1.0 - (1.0-0.2)(1.0-0.1)(1.0-0.4)(1.0-0.3)(1.0-0.2)(1.0-0.4)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接