计算联合概率的包含排除原则

时间:2017-09-01 07:40:56

标签: c++ vector

假设我有一个包含2个或更多元素的std :: vector。现在假设我想将包含排除原则应用于此向量(例如,假设其元素包含表示事件概率的长双精度)。 在这种情况下,当传递具有N个元素的向量时,目标将是此函数,以应用包含排除原则来查找所有这些事件的并集发生的概率。 < / p>

我认为这可能需要某种模板递归,但我真的很难计算公式中的每个术语。似乎任何时候我尝试创建对任意数量的元素进行推广的代码时,它会让我感到震惊并且卡住或丢失。有人提出任何建议吗?

1 个答案:

答案 0 :(得分:1)

只要所有事件都是独立的,这并不需要包含/排除。如果他们不是you need more data

所有事件发生的概率均等于其产品。

float probability(std::vector <float> eventProbability) {
    float prob = 1.0f;
    for(auto &p: eventProbability) prob *= p;
    return prob;
}