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