def format_useranswer(self, user_answer, display=False): if self.num_solutions == 1: user_answer = user_answer.replace('x', ' ') user_answer = user_answer.replace('=', ' ') user_answer = user_answer.replace('^', '**') user_answer = parse_expr(user_answer, transformations=transformations) return latex_print(user_answer, display) else: return user_answer
def format_useranswer(user_answer, display=False): user_answer = user_answer.lower() user_answer = user_answer.replace('^', '**') user_answer = parse_expr(user_answer, transformations=transformations) return latex_print(user_answer, display)
def __init__(self, **kwargs): if 'seed' in kwargs: self.seed = kwargs['seed'] else: self.seed = random.random() random.seed(self.seed) if 'num_solutions' in kwargs: self.num_solutions = kwargs['num_solutions'] else: self.num_solutions = random.choice([1, 1, 0, oo]) if 'a' in kwargs: self.a = kwargs['a'] else: self.a = random_non_zero_integer(-9, 9) if 'b' in kwargs: self.b = kwargs['b'] else: self.b = random.randint(-9, 9) if 'c' in kwargs: self.c = kwargs['c'] else: self.c = random_non_zero_integer(-9, 9) if 'd' in kwargs: self.d = kwargs['d'] else: self.d = random.randint(-9, 9) if 'e' in kwargs: self.e = kwargs['e'] else: if self.num_solutions == 1: offset = random_non_zero_integer(-9, 9) else: offset = 0 self.e = -(self.a + self.c) + offset if 'f' in kwargs: self.f = kwargs['f'] else: if self.num_solutions == 0: offset = random_non_zero_integer(-9, 9) elif self.num_solutions == 1: offset = random.randint(-9, 9) else: offset = 0 self.f = -(self.a * self.b + self.c * self.d) + offset if 'x' in kwargs: self.x = kwargs['x'] else: self.x = Symbol('x') self.problem = self.genproblem() self.given = self.problem['given'] self.answer = self.problem['answer'] self.given_latex = latex_print(self.given) self.given_latex_display = latex_print(self.given, display=True) self.format_given = self.given_latex_display self.answer_latex = latex_print(self.answer) self.answer_latex_display = latex_print(self.answer, display=True) if self.num_solutions == 1: self.format_answer = self.answer_latex else: self.format_answer = self.answer self.format_given_for_tex = f"""
def __init__(self, **kwargs): if 'seed' in kwargs: self.seed = kwargs['seed'] else: self.seed = random.random() random.seed(self.seed) # if 'has_solutions' in kwargs: # self.has_solutions = kwargs['has_solutions'] # else: # self.has_solutions = random.choice([True,True,False]) if 'a' in kwargs: self.a = kwargs['a'] else: self.a = random_non_zero_integer(-9, 9) if 'b' in kwargs: self.b = kwargs['b'] else: self.b = random.randint(-9, 9) if 'c' in kwargs: self.c = kwargs['c'] else: self.c = random.randint(-9, 9) # if self.has_solutions: # while (self.b**2 - 4*self.a*self.c < 0): # print('doin stuff') # self.c = random.randint(-9,9) # else: # while (self.b**2 - 4*self.a*self.c >= 0): # print('doin other stuff') # self.c = random.randint(-9,9) if (self.b**2 - 4 * self.a * self.c < 0): self.has_solutions = False else: self.has_solutions = True if 'x' in kwargs: self.x = kwargs['x'] else: self.x = sy.Symbol('x') x = self.x a = self.a b = self.b c = self.c difficulty = random.choice([0, 0, 0, 1, 1, 2]) # difficulty = 2 aux_a = 0 aux_b = 0 aux_c = int(random.triangular(-9, 9, 0)) if difficulty > 0: aux_b = random_non_zero_integer(-9, 9) if difficulty > 1: aux_a = random_non_zero_integer(-9, 9) aux = aux_a * x**2 + aux_b * x + aux_c LHS = sy.expand(a * x**2 + b * x + c + aux) RHS = aux self.given = f'{sy.latex(LHS)} = {sy.latex(RHS)}' if self.has_solutions: self.answer = {(-b - sy.sqrt(b**2 - 4 * a * c)) / (2 * a), (-b + sy.sqrt(b**2 - 4 * a * c)) / (2 * a)} format_answer = '' for ans in self.answer: format_answer += sy.latex(ans) + ' ,' format_answer = format_answer[:-2] self.format_answer = '\(' + format_answer + '\)' else: self.answer = 'No solution' self.format_answer = self.answer self.given_latex = latex_print(self.given) self.given_latex_display = latex_print(self.given, display=True) self.format_given = self.given_latex_display self.answer_latex = latex_print(self.answer) self.answer_latex_display = latex_print(self.answer, display=True) self.format_given_for_tex = f"""
def __init__(self, **kwargs): if 'seed' in kwargs: self.seed = kwargs['seed'] else: self.seed = random.random() random.seed(self.seed) if 'has_solutions' in kwargs: self.has_solutions = kwargs['has_solutions'] else: self.has_solutions = random.choice([True,True,False]) if 'a' in kwargs: self.a = kwargs['a'] else: self.a = random_non_zero_integer(-3,3) if 'b' in kwargs: self.b = kwargs['b'] else: self.b = random.randint(-9,9) if 'sqr' in kwargs: self.sqr = kwargs['sqr'] else: if self.has_solutions: p = random.randint(0,9) q = random.choice([1, 1, 1, 2, 3]) self.sqr = sy.Rational(p,q) else: p = random.randint(-9,-1) q = random.choice([1, 1, 1, 2, 3]) self.sqr = sy.Rational(p,q) if 'x' in kwargs: self.x = kwargs['x'] else: self.x = sy.Symbol('x') x = self.x a = self.a b = self.b sqr = self.sqr d = a*self.sqr self.d = d difficulty = random.choice([0,0,0,1,1,2]) # difficulty = 2 aux_a = 0 aux_b = 0 aux_c = int(random.triangular(-9,9,0)) if difficulty > 0: aux_b = random_non_zero_integer(-9,9) if difficulty > 1: aux_a = random_non_zero_integer(-9,9) aux = aux_a*x**2 + aux_b*x + aux_c LHS = q*sy.expand(a*(x-b)**2) + aux RHS = q*d + aux self.given = f'{sy.latex(LHS)} = {sy.latex(RHS)}' if self.has_solutions: self.answer = {-sy.sqrt(sqr)+b, sy.sqrt(sqr)+b} format_answer = '' for ans in self.answer: format_answer += sy.latex(ans) + ' ,' format_answer = format_answer[:-2] self.format_answer = '\(' + format_answer + '\)' else: self.answer = 'No solution' self.format_answer = self.answer self.given_latex = latex_print(self.given) self.given_latex_display = latex_print(self.given, display=True) self.format_given = self.given_latex_display self.answer_latex = latex_print(self.answer) self.answer_latex_display = latex_print(self.answer, display=True) self.format_given_for_tex = f"""
def __init__(self, **kwargs): if 'seed' in kwargs: self.seed = kwargs['seed'] else: self.seed = random.random() random.seed(self.seed) if 'has_solutions' in kwargs: self.has_solutions = kwargs['has_solutions'] else: self.has_solutions = random.choice([True, True, False]) if 'a' in kwargs: self.a = kwargs['a'] else: self.a = random_non_zero_integer(-9, 9) if 'b' in kwargs: self.b = kwargs['b'] else: self.b = random.randint(-9, 9) if 'c' in kwargs: self.c = kwargs['c'] else: self.c = random_non_zero_integer(-9, 9) if 'sqr' in kwargs: self.sqr = kwargs['sqr'] else: if self.has_solutions: p = random.randint(0, 9) q = random.choice([1, 1, 1, 2, 3]) self.sqr = sy.Rational(p, q) else: p = random.randint(-9, -1) q = random.choice([1, 1, 1, 2, 3]) self.sqr = sy.Rational(p, q) if 'x' in kwargs: self.x = kwargs['x'] else: self.x = sy.Symbol('x') x = self.x a = self.a b = self.b c = self.c sqr = self.sqr d = a * self.sqr + c self.d = d terms = [q * sy.factor(a * (x - b)**2), q * c, -d * q] if not self.has_solutions: LHS, RHS = permute_equation(terms, as_list=True) self.given = f'{sy.latex(LHS)} = {sy.latex(RHS)}' else: self.given = permute_equation(terms) #print('3rd step: So far its ', expr) if self.has_solutions: self.answer = {-sy.sqrt(sqr) + b, sy.sqrt(sqr) + b} format_answer = '' for ans in self.answer: format_answer += sy.latex(ans) + ' ,' format_answer = format_answer[:-2] self.format_answer = '\(' + format_answer + '\)' else: self.answer = 'No solution' self.format_answer = self.answer self.given_latex = latex_print(self.given) self.given_latex_display = latex_print(self.given, display=True) self.format_given = self.given_latex_display self.answer_latex = latex_print(self.answer) self.answer_latex_display = latex_print(self.answer, display=True) self.format_given_for_tex = f"""