枚举系数

时间:2019-11-03 16:02:20

标签: python sympy

我想制作一个程序来检测正确的扩展。 例如: 我要展开(x + 2)*(x - 3)。 解决方案是x*x -x -6 但是x*x +2*x -3*x -6是正确的解决方案。 我想检测出正确的(但未简化的)扩展。

1 个答案:

答案 0 :(得分:2)

如果允许用户以字符串形式输入表达式,并使用evaluate=False解析表达式,如here所示,则可以将输入的参数数量与完全简化的版本进行比较。 / p>

>>> 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个参数。