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]

每个事件都可以发生一次或多次。他们的顺序无关紧要。不止一个事件可能具有相同的概率。我将如何计算这些事件中的一个或多个发生的机会?

我很抱歉,这是一个基本问题。我已经有很多年没有像学校这样的东西了,当我搜索这个时,术语很难。可汗学院似乎也没有提供答案。如果答案很简单,只需告诉我要搜索什么就足够了。提前致谢!(:

4

3 回答 3

5

看待这个问题的一个好方法是考虑相反的问题:这些事件都不发生的概率是多少?也就是,概率是多少

事件 1 没有发生并且事件 2 没有发生并且等等。

这只是产品

(1 - p1) * (1 - p2) * .....

对于导致概率 p_none 的每个概率。然后采取相反的做法:

(1 - p_none)

并且您有可能发生一个或多个事件。

于 2013-04-23T16:43:50.420 回答
2

基本上你想要 1 - (没有事件发生的机会),这很容易。从 1 开始,遍历列表乘以 1 - 数字:

伪代码:

result = 1
foreach item in list
  result = result * (1 - item)
end foreach
return 1 - result
于 2013-04-23T16:42:12.297 回答
1

如果列出的概率都是事件 i 发生 1 次或多次的概率,那么这应该有效:

概率 1 或更多发生 == 1.0 - 概率都没有发生

概率没有发生 = 每个事件我没有发生的概率的乘积

我没有发生的概率事件 = 1.0 - 我发生的概率事件

当然,这假设每个事件类别都是独立的。

所以在你的情况下 prob = 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)

于 2013-04-23T16:49:28.460 回答