Added MathHook

This commit is contained in:
2026-04-26 17:49:45 -04:00
parent d90784ae0d
commit 63f32a51cb
4 changed files with 45 additions and 26 deletions

View File

@@ -14,7 +14,7 @@ def generate_linear():
x = symbols('x')
expr = a * x + b
# expanded = n
s = sstr(expr)
s = normalize(expr)
return {
"type": "linear",
@@ -35,7 +35,7 @@ def generate_hidden_factor():
inner_value = ans + b
right_side = a * inner_value + c * inner_value
problem = f"{a}({sstr(inner_expr)}) + {c}({sstr(inner_expr)}) = {right_side}"
problem = f"{a}({normalize(inner_expr)}) + {c}({normalize(inner_expr)}) = {right_side}"
return {
"type": "hidden_factor",
@@ -55,7 +55,7 @@ def generate_distribution ():
return {
"type": "distribution",
"problem": f"{a}({sstr(inner_expr)}) = {c}",
"problem": f"{a}({normalize(inner_expr)}) = {c}",
"solution": ans
}
@@ -73,7 +73,7 @@ def generate_two_sides ():
return {
"type": "two_sides",
"problem": f"{sstr(left_exp)} = {sstr(right_exp)}",
"problem": f"{normalize(left_exp)} = {normalize(right_exp)}",
"solution": ans
}
@@ -90,7 +90,7 @@ def generate_like_terms ():
return {
"type": "like_terms",
"problem": f"{sstr(expr)} = {d}",
"problem": f"{normalize(expr)} = {d}",
"solution": ans
}
@@ -111,7 +111,7 @@ def generate_quadratic ():
return {
"type": "quadratic",
"problem": f"{sstr(expr)} = 0",
"problem": f"{normalize(expr)} = 0",
"solution": solution
}
@@ -130,7 +130,7 @@ def generate_difference_squares ():
return {
"type": "difference_squares",
"problem": f"{sstr(expr)} = 0",
"problem": f"{normalize(expr)} = 0",
"solution": solution
}
@@ -144,7 +144,7 @@ def generate_zero_product ():
return {
"type": "zero_product",
"problem": f"{sstr(expr)} = 0",
"problem": f"{normalize(expr)} = 0",
"solution": [-a, -b]
}
@@ -159,7 +159,7 @@ def generate_radical ():
return {
"type": "radical",
"problem": f"{sstr(expr)} = {b}",
"problem": f"{normalize(expr)} = {b}",
"solution": ans
}
@@ -175,7 +175,7 @@ def generate_fraction ():
return {
"type": "fraction",
"problem": f"{sstr(expr)} = {c}",
"problem": f"{normalize(expr)} = {c}",
"solution": ans
}
@@ -197,7 +197,7 @@ def generate_binomial ():
return {
"type": "binomial",
"problem": f"{sstr(expr)} = {e}",
"problem": f"{normalize(expr)} = {e}",
"solution": ans
}
@@ -214,7 +214,7 @@ def generate_tricky ():
expanded = expanded - expr
expanded = expanded / (x - r1)
# expanded = n
s = sstr(expanded)
s = normalize(expanded)
return {
"type": "tricky",
@@ -222,6 +222,9 @@ def generate_tricky ():
"solution": r2
}
def normalize(expr):
return sstr(expr).replace("**", "^")
def generate_problem():
template = random.choice(TEMPLATES)
return template()