feat: probability exercises
This commit is contained in:
@@ -56,8 +56,49 @@ class BetaDistribution:
|
|||||||
def calc_region(init_probability, end_probability, success_count, failure_count):
|
def calc_region(init_probability, end_probability, success_count, failure_count):
|
||||||
return BetaDistribution.calc(end_probability, success_count, failure_count) - BetaDistribution.calc(init_probability, success_count, failure_count)
|
return BetaDistribution.calc(end_probability, success_count, failure_count) - BetaDistribution.calc(init_probability, success_count, failure_count)
|
||||||
|
|
||||||
|
p_r = 0.3
|
||||||
|
p_u = 0.4
|
||||||
class Exercises:
|
class Exercises:
|
||||||
|
@staticmethod
|
||||||
|
def one():
|
||||||
|
# 30% change of rain and 40% change your umbrella order will arrive. P(R AND U)
|
||||||
|
return p_r * p_u
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def two():
|
||||||
|
# Same Ps as previous. P(!R OR U)
|
||||||
|
# RU !RU !R!U R!U
|
||||||
|
return (1 - p_r) + p_u - ((1 - p_r) * p_u)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def three():
|
||||||
|
p_u_given_rain = 0.2
|
||||||
|
return p_u_given_rain * p_r
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def four():
|
||||||
|
n = 137
|
||||||
|
p_bail = 0.4
|
||||||
|
p_at_least_50_bail = 0.0
|
||||||
|
for x in range(50, n + 1):
|
||||||
|
p_at_least_50_bail += binom.pmf(x, n, p_bail)
|
||||||
|
return p_at_least_50_bail
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def five():
|
||||||
|
n = 10
|
||||||
|
h = 8
|
||||||
|
t = 2
|
||||||
|
return 1.0 - BetaDistribution.calc(0.5, 8, 2)
|
||||||
|
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def test():
|
||||||
|
print("P(R AND U) = {0}".format(Exercises.one()))
|
||||||
|
print("P(!R OR U) = {0}".format(Exercises.two()))
|
||||||
|
print("P(U AND R) = {0}".format(Exercises.three()))
|
||||||
|
print("P(At least 50 bail) = {0}".format(Exercises.four()))
|
||||||
|
print("P(fair) = {0}".format(Exercises.five()))
|
||||||
|
|
||||||
|
|
||||||
def test_probability_module():
|
def test_probability_module():
|
||||||
@@ -67,3 +108,5 @@ def test_probability_module():
|
|||||||
print(">> Beta distribution")
|
print(">> Beta distribution")
|
||||||
print(BetaDistribution.calc(0.9,8,2))
|
print(BetaDistribution.calc(0.9,8,2))
|
||||||
print(BetaDistribution.calc_region(0.8, 0.9, 8, 2))
|
print(BetaDistribution.calc_region(0.8, 0.9, 8, 2))
|
||||||
|
print(">> Exercises")
|
||||||
|
Exercises.test()
|
||||||
|
|||||||
Reference in New Issue
Block a user