假设我有一个包含2个或多个元素的std::向量。现在假设我想将包含排除原则应用于这个向量(例如,假设它的元素包含表示事件概率的长双倍)。在这种情况下,这个函数的目标是,当传递带有N个元素的向量时,应用包含排除原理来找出所有这些事件的合并的概率。
我假设这可能需要某种类型的模板递归,但我真的很难计算公式中的每一项。似乎每当我试图为任意数量的元素创建通用代码时,它都会让我感到震惊,我会陷入困境或迷失方向。有人有什么建议吗?
发布于 2017-09-01 08:00:25
只要所有事件都是独立的,这就不需要包含/退出。如果他们不是,你需要更多的数据。
所有事件发生的概率等于它们的乘积。
float probability(std::vector <float> eventProbability) {
float prob = 1.0f;
for(auto &p: eventProbability) prob *= p;
return prob;
}
https://stackoverflow.com/questions/45995420
复制相似问题