mirror of
https://github.com/DeaDvey/mathgenerator.git
synced 2025-11-28 06:25:23 +01:00
Merge branch 'lukew3:main' into main
This commit is contained in:
@@ -2,9 +2,9 @@ from .__init__ import *
|
||||
|
||||
|
||||
def gen_func(maxPrinciple=10000,
|
||||
maxRate=10,
|
||||
maxTime=10,
|
||||
format='string'):
|
||||
maxRate=10,
|
||||
maxTime=10,
|
||||
format='string'):
|
||||
p = random.randint(1000, maxPrinciple)
|
||||
r = random.randint(1, maxRate)
|
||||
n = random.randint(1, maxTime)
|
||||
@@ -13,7 +13,8 @@ def gen_func(maxPrinciple=10000,
|
||||
if format == 'string':
|
||||
problem = "Compound interest for a principle amount of " + \
|
||||
str(p) + " dollars, " + str(r) + \
|
||||
"% rate of interest and for a time period of " + str(n) + " year is = "
|
||||
"% rate of interest and for a time period of " + \
|
||||
str(n) + " year is = "
|
||||
return problem, str(a)
|
||||
elif format == 'latex':
|
||||
return "Latex unavailable"
|
||||
|
||||
@@ -2,10 +2,10 @@ from .__init__ import *
|
||||
|
||||
|
||||
def gen_func(range_x1=10,
|
||||
range_x2=10,
|
||||
range_a=10,
|
||||
range_b=10,
|
||||
format='string'):
|
||||
range_x2=10,
|
||||
range_a=10,
|
||||
range_b=10,
|
||||
format='string'):
|
||||
x1 = random.randint(-range_x1, range_x1)
|
||||
x2 = random.randint(-range_x2, range_x2)
|
||||
a = random.randint(-range_a, range_a)
|
||||
|
||||
@@ -3,9 +3,9 @@ import sympy
|
||||
|
||||
|
||||
def gen_func(SquareMatrixDimension=3,
|
||||
MaxMatrixElement=99,
|
||||
OnlyIntegerElementsInInvertedMatrix=False,
|
||||
format='string'):
|
||||
MaxMatrixElement=99,
|
||||
OnlyIntegerElementsInInvertedMatrix=False,
|
||||
format='string'):
|
||||
if OnlyIntegerElementsInInvertedMatrix is True:
|
||||
isItOk = False
|
||||
Mat = list()
|
||||
|
||||
@@ -2,9 +2,9 @@ from .__init__ import *
|
||||
|
||||
|
||||
def gen_func(maxPrinciple=10000,
|
||||
maxRate=10,
|
||||
maxTime=10,
|
||||
format='string'):
|
||||
maxRate=10,
|
||||
maxTime=10,
|
||||
format='string'):
|
||||
a = random.randint(1000, maxPrinciple)
|
||||
b = random.randint(1, maxRate)
|
||||
c = random.randint(1, maxTime)
|
||||
|
||||
@@ -5,8 +5,8 @@ import math
|
||||
|
||||
# Handles degrees in quadrant one
|
||||
def gen_func(angles=[0, 30, 45, 60, 90],
|
||||
functions=["sin", "cos", "tan"],
|
||||
format='string'):
|
||||
functions=["sin", "cos", "tan"],
|
||||
format='string'):
|
||||
angle = random.choice(angles)
|
||||
function = random.choice(functions)
|
||||
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def gen_func(maxCoordinate=20, minCoordinate=-20, format='string'):
|
||||
def greatest_common_divisor(num1,num2):
|
||||
if num2==0:
|
||||
return num1
|
||||
else:
|
||||
return greatest_common_divisor(num2 , num1%num2)
|
||||
|
||||
x1 = random.randint(minCoordinate, maxCoordinate)
|
||||
x2 = random.randint(minCoordinate, maxCoordinate)
|
||||
|
||||
y1 = random.randint(minCoordinate, maxCoordinate)
|
||||
y2 = random.randint(minCoordinate, maxCoordinate)
|
||||
|
||||
coeff_y = (x2-x1)
|
||||
coeff_x = (y2-y1)
|
||||
constant = y2*coeff_y - x2*coeff_x
|
||||
|
||||
gcd = greatest_common_divisor(abs(coeff_x), abs(coeff_y))
|
||||
|
||||
if gcd !=1:
|
||||
if coeff_y > 0: coeff_y //= gcd
|
||||
if coeff_x > 0: coeff_x //= gcd
|
||||
if constant > 0: constant //= gcd
|
||||
if coeff_y < 0: coeff_y = -(-coeff_y//gcd)
|
||||
if coeff_x < 0: coeff_x = -(-coeff_x//gcd)
|
||||
if constant < 0: constant = -(-constant//gcd)
|
||||
if coeff_y < 0 :
|
||||
coeff_y = -(coeff_y)
|
||||
coeff_x = -(coeff_x)
|
||||
constant = -(constant)
|
||||
|
||||
if format == 'string':
|
||||
problem = f"What is the equation of the line between points ({x1},{y1}) and ({x2},{y2}) in slope-intercept form?"
|
||||
if constant > 0:
|
||||
solution = str(coeff_y)+"y = " + str(coeff_x)+ "x + " + str(constant)
|
||||
else:
|
||||
solution = str(coeff_y)+"y = " + str(coeff_x)+ "x - " + str(-constant)
|
||||
return problem, solution
|
||||
elif format == 'latex':
|
||||
return 'Latex unavailable'
|
||||
else:
|
||||
return x1, x2, y1, y2, coeff_x, coeff_y, constant
|
||||
|
||||
|
||||
equation_of_line_from_two_points = Generator(
|
||||
"Equation of line from two points", 114, gen_func,
|
||||
["maxCoordinate=20", "minCoordinate=-20"])
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def gen_func(maxR1=20, maxR2 = 20, maxHeight=50, unit='m', format='string'):
|
||||
def gen_func(maxR1=20, maxR2=20, maxHeight=50, unit='m', format='string'):
|
||||
h = random.randint(1, maxHeight)
|
||||
r1 = random.randint(1, maxR1)
|
||||
r2 = random.randint(1, maxR2)
|
||||
ans = ((math.pi*h)*(r1**2 + r2**2 + r1*r2))//3
|
||||
ans = ((math.pi * h) * (r1 ** 2 + r2 ** 2 + r1 * r2)) // 3
|
||||
|
||||
if format == 'string':
|
||||
problem = f"Volume of frustum with height = {h}{unit} and r1 = {r1}{unit} is and r2 = {r1}{unit} is "
|
||||
@@ -18,4 +18,4 @@ def gen_func(maxR1=20, maxR2 = 20, maxHeight=50, unit='m', format='string'):
|
||||
|
||||
|
||||
volume_frustum = Generator("Volume of frustum", 113, gen_func,
|
||||
["maxR1=20","maxR2=20", "maxHeight=50", "unit='m'"])
|
||||
["maxR1=20", "maxR2=20", "maxHeight=50", "unit='m'"])
|
||||
|
||||
@@ -4,8 +4,8 @@ import math
|
||||
|
||||
|
||||
def gen_func(minRealImaginaryNum=-20,
|
||||
maxRealImaginaryNum=20,
|
||||
format='string'):
|
||||
maxRealImaginaryNum=20,
|
||||
format='string'):
|
||||
num = complex(random.randint(minRealImaginaryNum, maxRealImaginaryNum),
|
||||
random.randint(minRealImaginaryNum, maxRealImaginaryNum))
|
||||
a = num.real
|
||||
|
||||
@@ -3,7 +3,6 @@ from .__init__ import *
|
||||
|
||||
def gen_func(format='string'):
|
||||
|
||||
|
||||
if format == 'string':
|
||||
|
||||
return problem, solution
|
||||
@@ -16,4 +15,4 @@ def gen_func(format='string'):
|
||||
|
||||
|
||||
generator_name = Generator("<Title>", id, gen_func,
|
||||
["<kwarg1>"])
|
||||
["<kwarg1>"])
|
||||
|
||||
@@ -9,17 +9,18 @@ def gen_func(format='string'):
|
||||
return problem, solution
|
||||
elif format == 'latex':
|
||||
# code that generates latex representation of problem, and solution goes here
|
||||
# if you can't do this, leave the return 'Latex unavailable'
|
||||
#return latex_problem, latex_solution
|
||||
# if you can't do this, leave the return 'Latex unavailable'
|
||||
# return latex_problem, latex_solution
|
||||
return 'Latex unavailable'
|
||||
else:
|
||||
# Return necessary variables here
|
||||
# Any variables that go into the problem and solution string without formatting
|
||||
# Any variables that go into the problem and solution string without formatting
|
||||
return a, b
|
||||
|
||||
|
||||
# generator_name should be the same as the file name
|
||||
# id can be generated by running nextId.py inside of the scripts folder
|
||||
# replace id with number generated by running nextId.py inside of the scripts folder
|
||||
# last argument of Generator should be a list of the kwargs used in your gen_func().
|
||||
generator_name = Generator("<Title>", <id>, gen_func,
|
||||
["<kwarg1>"])
|
||||
generator_name = Generator("<Title>", id, gen_func,
|
||||
["<kwarg1>"])
|
||||
# Delete all comments before submitting a pr
|
||||
|
||||
@@ -13,4 +13,5 @@ else:
|
||||
file = './futureGenerators.md'
|
||||
|
||||
with open(file, 'a') as f:
|
||||
f.writelines(f'| {title} | {example_problem} | {example_solution} | {further_explanation} |\n')
|
||||
f.writelines(
|
||||
f'| {title} | {example_problem} | {example_solution} | {further_explanation} |\n')
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import os
|
||||
from makeReadme import main
|
||||
|
||||
|
||||
def get_filepaths(subject_name):
|
||||
"""
|
||||
This function will generate the file names in a directory
|
||||
@@ -23,7 +24,9 @@ def get_filepaths(subject_name):
|
||||
|
||||
return file_paths
|
||||
|
||||
subjects = ['algebra', 'basic_math', 'calculus', 'computer_science', 'geometry', 'misc', 'statistics']
|
||||
|
||||
subjects = ['algebra', 'basic_math', 'calculus',
|
||||
'computer_science', 'geometry', 'misc', 'statistics']
|
||||
for subject in subjects:
|
||||
full_file_paths = get_filepaths(subject)
|
||||
full_file_paths.sort()
|
||||
@@ -34,4 +37,4 @@ for subject in subjects:
|
||||
with open(f'../mathgenerator/funcs/{subject}/__init__.py', 'w') as f:
|
||||
f.writelines(lines)
|
||||
|
||||
main() #makes readme
|
||||
main() # makes readme
|
||||
|
||||
Reference in New Issue
Block a user