def solving_two_step_equations(depth=2, rounding=2): depth = convert_kwarg(depth, int) expression = symbols('x') for t in range(0, depth-1): exp_type = random.choice(['left', 'right', 'center_left', 'center_right']) if exp_type == 'left': expression = random_expression(expression) elif exp_type == 'right': expression = random_expression(None, expression) elif exp_type == 'center_left': expression = random_expression(expression, random_expression()) elif exp_type == 'center_right': expression = random_expression(random_expression(), expression) expression = Eq(expression, random_tens_int(2)) solution = solve(expression) if not solution: return solving_two_step_equations(depth, rounding) solution = solution[0] solution_1 = format_expression(solution) solution_2 = str(round(solution.evalf(), rounding)) return "Solve for x: " + format_expression(expression), [solution_1, solution_2]
def order_of_operations(depth=2, rounding=2): depth = convert_kwarg(depth, int) expression = random_expression() for t in range(0, depth-1): exp_type = random.choice(['left', 'right', 'center_left', 'center_right']) if exp_type == 'left': expression = random_expression(expression) elif exp_type == 'right': expression = random_expression(None, expression) elif exp_type == 'center_left': expression = random_expression(expression, random_expression()) elif exp_type == 'center_right': expression = random_expression(random_expression(), expression) return format_expression(expression), str(round(expression.evalf(), rounding))