V1 untested
This commit is contained in:
@@ -242,6 +242,10 @@ def generate_quadratic_steps (problem):
|
||||
|
||||
##Solve the Roots
|
||||
steps.extend(algebraic_steps.solve_roots(current))
|
||||
current = steps[-1]["after"]
|
||||
|
||||
# Check for incorrect answers
|
||||
steps.extend(algebraic_steps.check_roots(problem["problem"], current))
|
||||
|
||||
return steps
|
||||
|
||||
@@ -270,7 +274,10 @@ def generate_difference_squares_steps (problem):
|
||||
|
||||
## Step 2
|
||||
steps.append(algebraic_steps.square_root_both_sides(current))
|
||||
current = steps[-1]["after"]
|
||||
|
||||
# Check for incorrect answers
|
||||
steps.extend(algebraic_steps.check_roots(problem["problem"], current))
|
||||
|
||||
return steps
|
||||
|
||||
@@ -310,6 +317,11 @@ def generate_radical_steps (problem):
|
||||
left_expr = parse_expr(left, transformations=transformations)
|
||||
right_expr = parse_expr(right)
|
||||
steps[-1]["after"] = f"{sstr(left_expr)} = {sstr(right_expr)}"
|
||||
|
||||
current = steps[-1]["after"]
|
||||
|
||||
# Check for incorrect answers
|
||||
steps.extend(algebraic_steps.check_roots(problem["problem"], current))
|
||||
|
||||
return steps
|
||||
|
||||
@@ -353,12 +365,14 @@ def generate_binomial_steps (problem):
|
||||
current = problem["problem"]
|
||||
|
||||
## Distribute Terms
|
||||
init_printing(order='none')
|
||||
last_len = -1
|
||||
while last_len != len(steps):
|
||||
last_len = len(steps)
|
||||
steps.extend(algebraic_steps.distribute_step(current))
|
||||
steps.extend(algebraic_steps.distribute_left_step(current))
|
||||
if len(steps):
|
||||
current = steps[-1]["after"]
|
||||
init_printing(order='lex')
|
||||
|
||||
## Combine Like Terms
|
||||
steps.append(algebraic_steps.combine_like_terms(current))
|
||||
@@ -376,6 +390,9 @@ def generate_binomial_steps (problem):
|
||||
current = steps[-1]["after"]
|
||||
left, right = current.split("=")
|
||||
left_expr = parse_expr(left, transformations=transformations)
|
||||
right_expr = parse_expr(right)
|
||||
steps[-1]["after"] = f"{sstr(left_expr)} = {sstr(right_expr)}"
|
||||
current = steps[-1]["after"]
|
||||
|
||||
## Divide by coefficient
|
||||
a = left_expr.coeff(x)
|
||||
@@ -390,6 +407,38 @@ def generate_binomial_steps (problem):
|
||||
def generate_tricky_steps (problem):
|
||||
#(x² - x - a) / (x + b) = c
|
||||
steps = []
|
||||
x = symbols('x')
|
||||
current = problem["problem"]
|
||||
|
||||
# Multiply Denom
|
||||
left, right = current.split("=")
|
||||
left_expr = parse_expr(left, transformations=transformations)
|
||||
right_expr = parse_expr(right)
|
||||
num, den = left_expr.as_numer_denom()
|
||||
steps.append(algebraic_steps.multiply_both_sides(current, den))
|
||||
current = steps[-1]["after"]
|
||||
|
||||
# Distribute out right side
|
||||
init_printing(order='none')
|
||||
steps.extend(algebraic_steps.distribute_right_step(current))
|
||||
current = steps[-1]["after"]
|
||||
init_printing(order='lex')
|
||||
|
||||
# Move Everything to Left
|
||||
steps.append(algebraic_steps.move_all_to_one_side(current))
|
||||
current = steps[-1]["after"]
|
||||
|
||||
# Combine Like Terms
|
||||
steps.append(algebraic_steps.combine_like_terms(current))
|
||||
current = steps[-1]["after"]
|
||||
|
||||
# Solve Quadratic
|
||||
print(f"calling generate_quadratic_steps with: {current}")
|
||||
steps.extend(generate_quadratic_steps({"problem" : current}))
|
||||
current = steps[-1]["after"]
|
||||
|
||||
# Check for incorrect answers
|
||||
steps.extend(algebraic_steps.check_roots(problem["problem"], current))
|
||||
|
||||
return steps
|
||||
|
||||
|
||||
Reference in New Issue
Block a user