mirror of
https://github.com/DeaDvey/mathgenerator.git
synced 2025-11-28 06:25:23 +01:00
added binomial distribution function
This commit is contained in:
5
.vscode/settings.json
vendored
Normal file
5
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"python.linting.pylintEnabled": false,
|
||||
"python.linting.flake8Enabled": true,
|
||||
"python.linting.enabled": true
|
||||
}
|
||||
@@ -111,3 +111,4 @@ from .decimal_to_bcd import *
|
||||
from .circumference import *
|
||||
from .combine_like_terms import *
|
||||
from .conditional_probability import *
|
||||
from .binomial_distribution import *
|
||||
|
||||
42
mathgenerator/funcs/binomial_distribution.py
Normal file
42
mathgenerator/funcs/binomial_distribution.py
Normal file
@@ -0,0 +1,42 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def factorial(n):
|
||||
|
||||
if n == 1 or n == 0:
|
||||
return 1
|
||||
else:
|
||||
return n*factorial(n-1)
|
||||
|
||||
|
||||
def newton_symbol(n, k):
|
||||
return factorial(n)/(factorial(k)*factorial(n-k))
|
||||
|
||||
|
||||
def binomialDistFunc():
|
||||
|
||||
rejected_fraction = float(random.randint(30, 40)) + random.random()
|
||||
batch = random.randint(10, 20)
|
||||
rejections = random.randint(1, 9)
|
||||
|
||||
answer = 0
|
||||
|
||||
rejected_fraction = round(rejected_fraction, 2)
|
||||
|
||||
problem = "A manufacturer of metal pistons finds that, on average, {0:}% "\
|
||||
"of the pistons they manufacture are rejected because " \
|
||||
"they are incorrectly sized. What is the probability that a "\
|
||||
"batch of {1:} pistons will contain no more than {2:} " \
|
||||
"rejected pistons?".format(rejected_fraction, batch, rejections)
|
||||
|
||||
for i in range(0, rejections+1):
|
||||
answer += newton_symbol(batch, i)*((rejected_fraction/100.)**i) * \
|
||||
((1 - (rejected_fraction/100.))**(batch-i))
|
||||
|
||||
answer = round(100*answer, 2)
|
||||
|
||||
return problem, answer
|
||||
|
||||
|
||||
binomial_distribution = Generator("Binomial distribution", 107,
|
||||
"P(X<x)=", "c", binomialDistFunc)
|
||||
Reference in New Issue
Block a user