Exemplo n.º 1
0
 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)
Exemplo n.º 3
0
    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"""
Exemplo n.º 6
0
    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"""