Merge branch 'lukew3:main' into main

This commit is contained in:
Sankari Karthik
2021-10-09 15:19:02 +05:30
committed by GitHub
12 changed files with 37 additions and 82 deletions

View File

@@ -2,9 +2,9 @@ from .__init__ import *
def gen_func(maxPrinciple=10000, def gen_func(maxPrinciple=10000,
maxRate=10, maxRate=10,
maxTime=10, maxTime=10,
format='string'): format='string'):
p = random.randint(1000, maxPrinciple) p = random.randint(1000, maxPrinciple)
r = random.randint(1, maxRate) r = random.randint(1, maxRate)
n = random.randint(1, maxTime) n = random.randint(1, maxTime)
@@ -13,7 +13,8 @@ def gen_func(maxPrinciple=10000,
if format == 'string': if format == 'string':
problem = "Compound interest for a principle amount of " + \ problem = "Compound interest for a principle amount of " + \
str(p) + " dollars, " + str(r) + \ 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) return problem, str(a)
elif format == 'latex': elif format == 'latex':
return "Latex unavailable" return "Latex unavailable"

View File

@@ -2,10 +2,10 @@ from .__init__ import *
def gen_func(range_x1=10, def gen_func(range_x1=10,
range_x2=10, range_x2=10,
range_a=10, range_a=10,
range_b=10, range_b=10,
format='string'): format='string'):
x1 = random.randint(-range_x1, range_x1) x1 = random.randint(-range_x1, range_x1)
x2 = random.randint(-range_x2, range_x2) x2 = random.randint(-range_x2, range_x2)
a = random.randint(-range_a, range_a) a = random.randint(-range_a, range_a)

View File

@@ -3,9 +3,9 @@ import sympy
def gen_func(SquareMatrixDimension=3, def gen_func(SquareMatrixDimension=3,
MaxMatrixElement=99, MaxMatrixElement=99,
OnlyIntegerElementsInInvertedMatrix=False, OnlyIntegerElementsInInvertedMatrix=False,
format='string'): format='string'):
if OnlyIntegerElementsInInvertedMatrix is True: if OnlyIntegerElementsInInvertedMatrix is True:
isItOk = False isItOk = False
Mat = list() Mat = list()

View File

@@ -2,9 +2,9 @@ from .__init__ import *
def gen_func(maxPrinciple=10000, def gen_func(maxPrinciple=10000,
maxRate=10, maxRate=10,
maxTime=10, maxTime=10,
format='string'): format='string'):
a = random.randint(1000, maxPrinciple) a = random.randint(1000, maxPrinciple)
b = random.randint(1, maxRate) b = random.randint(1, maxRate)
c = random.randint(1, maxTime) c = random.randint(1, maxTime)

View File

@@ -5,8 +5,8 @@ import math
# Handles degrees in quadrant one # Handles degrees in quadrant one
def gen_func(angles=[0, 30, 45, 60, 90], def gen_func(angles=[0, 30, 45, 60, 90],
functions=["sin", "cos", "tan"], functions=["sin", "cos", "tan"],
format='string'): format='string'):
angle = random.choice(angles) angle = random.choice(angles)
function = random.choice(functions) function = random.choice(functions)

View File

@@ -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"])

View File

@@ -1,11 +1,11 @@
from .__init__ import * 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) h = random.randint(1, maxHeight)
r1 = random.randint(1, maxR1) r1 = random.randint(1, maxR1)
r2 = random.randint(1, maxR2) 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': if format == 'string':
problem = f"Volume of frustum with height = {h}{unit} and r1 = {r1}{unit} is and r2 = {r1}{unit} is " 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, 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'"])

View File

@@ -4,8 +4,8 @@ import math
def gen_func(minRealImaginaryNum=-20, def gen_func(minRealImaginaryNum=-20,
maxRealImaginaryNum=20, maxRealImaginaryNum=20,
format='string'): format='string'):
num = complex(random.randint(minRealImaginaryNum, maxRealImaginaryNum), num = complex(random.randint(minRealImaginaryNum, maxRealImaginaryNum),
random.randint(minRealImaginaryNum, maxRealImaginaryNum)) random.randint(minRealImaginaryNum, maxRealImaginaryNum))
a = num.real a = num.real

View File

@@ -3,7 +3,6 @@ from .__init__ import *
def gen_func(format='string'): def gen_func(format='string'):
if format == 'string': if format == 'string':
return problem, solution return problem, solution
@@ -16,4 +15,4 @@ def gen_func(format='string'):
generator_name = Generator("<Title>", id, gen_func, generator_name = Generator("<Title>", id, gen_func,
["<kwarg1>"]) ["<kwarg1>"])

View File

@@ -9,17 +9,18 @@ def gen_func(format='string'):
return problem, solution return problem, solution
elif format == 'latex': elif format == 'latex':
# code that generates latex representation of problem, and solution goes here # code that generates latex representation of problem, and solution goes here
# if you can't do this, leave the return 'Latex unavailable' # if you can't do this, leave the return 'Latex unavailable'
#return latex_problem, latex_solution # return latex_problem, latex_solution
return 'Latex unavailable' return 'Latex unavailable'
else: else:
# Return necessary variables here # 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 return a, b
# generator_name should be the same as the file name # 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(). # last argument of Generator should be a list of the kwargs used in your gen_func().
generator_name = Generator("<Title>", <id>, gen_func, generator_name = Generator("<Title>", id, gen_func,
["<kwarg1>"]) ["<kwarg1>"])
# Delete all comments before submitting a pr # Delete all comments before submitting a pr

View File

@@ -13,4 +13,5 @@ else:
file = './futureGenerators.md' file = './futureGenerators.md'
with open(file, 'a') as f: 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')

View File

@@ -1,6 +1,7 @@
import os import os
from makeReadme import main from makeReadme import main
def get_filepaths(subject_name): def get_filepaths(subject_name):
""" """
This function will generate the file names in a directory This function will generate the file names in a directory
@@ -23,7 +24,9 @@ def get_filepaths(subject_name):
return file_paths 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: for subject in subjects:
full_file_paths = get_filepaths(subject) full_file_paths = get_filepaths(subject)
full_file_paths.sort() full_file_paths.sort()
@@ -34,4 +37,4 @@ for subject in subjects:
with open(f'../mathgenerator/funcs/{subject}/__init__.py', 'w') as f: with open(f'../mathgenerator/funcs/{subject}/__init__.py', 'w') as f:
f.writelines(lines) f.writelines(lines)
main() #makes readme main() # makes readme