From f6dd3bf6a927b06339d63cbd64d3a942cf65dfce Mon Sep 17 00:00:00 2001 From: Dylan Robertson <31269647+RobotRage@users.noreply.github.com> Date: Sun, 26 Apr 2020 19:51:38 +1000 Subject: [PATCH] feat: added addition_rule.cpp for probability (#732) * added addition_rule.cpp for probability * fixed cpplint errors * Disable actions-gh-pages Co-authored-by: Christian Clauss --- probability/addition_rule.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 probability/addition_rule.cpp diff --git a/probability/addition_rule.cpp b/probability/addition_rule.cpp new file mode 100644 index 000000000..f19955071 --- /dev/null +++ b/probability/addition_rule.cpp @@ -0,0 +1,28 @@ +#include + +// calculates the probability of the events A or B for independent events + +double addition_rule_independent(double A, double B) { + return (A + B) - (A * B); +} + +// calculates the probability of the events A or B for dependent events +// note that if value of B_given_A is unknown, use chainrule to find it + +double addition_rule_dependent(double A, double B, double B_given_A) { + return (A + B) - (A * B_given_A); +} + +int main() { + double A = 0.5; + double B = 0.25; + double B_given_A = 0.05; + + std::cout << "independent P(A or B) = " + << addition_rule_independent(A, B) << std::endl; + + std::cout << "dependent P(A or B) = " + << addition_rule_dependent(A, B, B_given_A) << std::endl; + + return 0; +}