From 78d6bcc9b30866bfddb8e8a208c27c94aa3ef50e Mon Sep 17 00:00:00 2001 From: Rodolfo Nei Date: Fri, 16 Oct 2020 12:14:07 -0300 Subject: [PATCH 1/4] add the multiplication of fractions function --- mathgenerator/mathgen.py | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/mathgenerator/mathgen.py b/mathgenerator/mathgen.py index 16f7537..35c3e28 100644 --- a/mathgenerator/mathgen.py +++ b/mathgenerator/mathgen.py @@ -387,6 +387,29 @@ def primeFactors(minVal=1, maxVal=200): solution = f"{factors}" return problem, solution +def multiplyFractionsFunc(maxVal=10): + a = random.randint(1, maxVal) + b = random.randint(1, maxVal) + c = random.randint(1, maxVal) + d = random.randint(1, maxVal) + while (a == b): + b = random.randint(1, maxVal) + while (c == d): + d = random.randint(1, maxVal) + def calculate_gcd(x, y): + while(y): + x, y = y, x % y + return x + tmp_n = a * c + tmp_d = b * d + gcd = calculate_gcd(tmp_n, tmp_d) + x = f"{tmp_n//gcd}/{tmp_d//gcd}" + if (tmp_d == 1 or tmp_d == gcd): + x = f"{tmp_n//gcd}" + problem = f"({a}/{b})*({c}/{d})" + solution = x + return problem, solution + # || Class Instances #Format is: @@ -419,4 +442,5 @@ systemOfEquations = Generator("Solve a System of Equations in R^2", 23, "2x + 5y distance2Point = Generator("Distance between 2 points", 24, "Find the distance between (x1,y1) and (x2,y2)","sqrt(distanceSquared)", distanceTwoPointsFunc) pythagoreanTheorem = Generator("Pythagorean Theorem", 25, "The hypotenuse of a right triangle given the other two lengths a and b = ", "hypotenuse", pythagoreanTheoremFunc) linearEquations = Generator("Linear Equations", 26, "2x+5y=20 & 3x+6y=12", "x=-20 & y=12", linearEquationsFunc) #This has multiple variables whereas #23 has only x and y -primeFactors = Generator("Prime Factorisation", 27, "Prime Factors of a =", "[b, c, d, ...]", primeFactors) \ No newline at end of file +primeFactors = Generator("Prime Factorisation", 27, "Prime Factors of a =", "[b, c, d, ...]", primeFactors) +fractionMultiplication = Generator("Fraction Multiplication", 28, "(a/b)*(c/d)=", "x/y", multiplyFractionsFunc) \ No newline at end of file From 7c352da6a272d6a6bf9d9936290c2890569af57d Mon Sep 17 00:00:00 2001 From: Yash Date: Fri, 16 Oct 2020 21:17:54 +0530 Subject: [PATCH 2/4] added function --- mathgenerator/mathgen.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mathgenerator/mathgen.py b/mathgenerator/mathgen.py index 16f7537..f63415b 100644 --- a/mathgenerator/mathgen.py +++ b/mathgenerator/mathgen.py @@ -387,6 +387,13 @@ def primeFactors(minVal=1, maxVal=200): solution = f"{factors}" return problem, solution +def regularPolygonAngle(minVal = 3,maxVal = 20): + sideNum = random.randint(minVal, maxVal) + problem = f"Find the angle of a regular polygon with {sideNum} sides" + exteriorAngle = (360/sideNum) + solution = 180 - exteriorAngle + return problem, solution + # || Class Instances #Format is: From 8a9912e40a6183e64714b02f6b3dd701ab179975 Mon Sep 17 00:00:00 2001 From: Yash Date: Fri, 16 Oct 2020 21:21:59 +0530 Subject: [PATCH 3/4] added class instance --- mathgenerator/mathgen.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mathgenerator/mathgen.py b/mathgenerator/mathgen.py index f63415b..87864c0 100644 --- a/mathgenerator/mathgen.py +++ b/mathgenerator/mathgen.py @@ -426,4 +426,5 @@ systemOfEquations = Generator("Solve a System of Equations in R^2", 23, "2x + 5y distance2Point = Generator("Distance between 2 points", 24, "Find the distance between (x1,y1) and (x2,y2)","sqrt(distanceSquared)", distanceTwoPointsFunc) pythagoreanTheorem = Generator("Pythagorean Theorem", 25, "The hypotenuse of a right triangle given the other two lengths a and b = ", "hypotenuse", pythagoreanTheoremFunc) linearEquations = Generator("Linear Equations", 26, "2x+5y=20 & 3x+6y=12", "x=-20 & y=12", linearEquationsFunc) #This has multiple variables whereas #23 has only x and y -primeFactors = Generator("Prime Factorisation", 27, "Prime Factors of a =", "[b, c, d, ...]", primeFactors) \ No newline at end of file +primeFactors = Generator("Prime Factorisation", 27, "Prime Factors of a =", "[b, c, d, ...]", primeFactors) +angleRegularPolygon = Generator("Angle of a Regular Polygon",28,"Find the angle of a regular polygon with 6 sides",120,regularPolygonAngle) \ No newline at end of file From 4b3874cc74003e42e9652dfc4fde5194e2357efb Mon Sep 17 00:00:00 2001 From: Yash Date: Fri, 16 Oct 2020 21:28:54 +0530 Subject: [PATCH 4/4] Rounded to 2 decimal places --- mathgenerator/mathgen.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mathgenerator/mathgen.py b/mathgenerator/mathgen.py index 87864c0..a29b443 100644 --- a/mathgenerator/mathgen.py +++ b/mathgenerator/mathgen.py @@ -390,7 +390,7 @@ def primeFactors(minVal=1, maxVal=200): def regularPolygonAngle(minVal = 3,maxVal = 20): sideNum = random.randint(minVal, maxVal) problem = f"Find the angle of a regular polygon with {sideNum} sides" - exteriorAngle = (360/sideNum) + exteriorAngle = round((360/sideNum),2) solution = 180 - exteriorAngle return problem, solution