Перечислять коэффициенты - PullRequest
0 голосов
/ 03 ноября 2019

Я хочу сделать программу для обнаружения правильного расширения. Например: я хочу расширить (x + 2)*(x - 3). Решение x*x -x -6 Но x*x +2*x -3*x -6 - правильное решение. Я хочу обнаружить такие правильные (но не упрощенные) расширения.

1 Ответ

2 голосов
/ 03 ноября 2019

Если вы разрешите пользователю вводить выражение в виде строки и анализировать выражение с помощью evaluate=False, как показано здесь , вы можете сравнить количество аргументов во введенном с полностью упрощенной версией.

>>> expr = (x - 3)*(x + 2)
>>> expanded = expand(expr)
>>> ans = 'x*x +2*x -3*x -6'  # obtained from user
>>> if S(ans) == expanded:  # it's right
...     if len(parse_expr(ans, evaluate=False).args) != len(expanded.args):
...         print('right, but not simplified')

Непростое значение ans будет иметь 4 аргумента, в то время как расширенная форма будет иметь 3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...