-1

Входные данные:(x+1)(y+1)+(x+1)y+xy Нужно найти решение которое "откроет" скобки и посчитает результат чтобы на выходе получить: xy + x + y + 1 + xy + y + xy

retorta
  • 2,618

1 Answers1

1

Вот способ использующий sympy, но также поддерживающий неявное умножение:

from sympy.parsing.sympy_parser import (parse_expr, standard_transformations, implicit_multiplication_application)
from sympy import *
input_str = "(x+1)(y+1)+(x+1)y+xy"
transformations = standard_transformations + (implicit_multiplication_application,)
print(expand(parse_expr(input_str, transformations=transformations))) # 3*x*y + x + 2*y + 1
retorta
  • 2,618
  • эта библиотека что-то с чем то :) – gil9red Jun 15 '17 at 18:41
  • Мне вот интересно стало, что это библиотека не может сделать... – Andrio Skur Jun 15 '17 at 18:56
  • @AndrioSkur вычислить такое выражение: parse_expr("2+f(2)", evaluate=False) и не упасть с ошибкой – retorta Jun 15 '17 at 19:03