在网上搜索 [math software steps] 或 [math software show steps] 会显示诸如 cymath、mathway、polymathlove、quickmath、symbolab、wolfram alpha 等结果。
它们似乎主要是应用程序和网站;我找不到
任何用于该任务的免费软件,尽管它可能存在。
这不是 SageMath 的重点,但仍然可以试一试。
Sage 有“表达方式”:
sage: x = SR.var('x')
sage: a = 3*x + 5
sage: b = SR(2)
sage: expr = a.mul(b, hold=True)
sage: expr
2*(3*x + 5)
可以获取表达式的运算符和操作数。
sage: a.operator()
<function add_vararg at 0x...>
sage: a.operands()
[3*x, 5]
sage: expr.operator()
<function mul_vararg at 0x...>
sage: expr.operands()
[3*x + 5, 2]
和和积符号运算符是:
sage: plus = sage.symbolic.operators.add_vararg
sage: times = sage.symbolic.operators.mul_vararg
sage: expr.operator() == times
True
sage: a.operator() == plus
True
所以一个人可以遍历表达式树并且
展开其中所有和的乘积。
这里是一步一步扩展的简单例子
在问题中,手工完成:
sage: x = SR.var('x')
sage: a = 3*x + 5
sage: b = SR(2)
sage: expr = a.mul(b, hold=True)
sage: expr
2*(3*x + 5)
sage: d, e = a.operands()
sage: d, e
(3*x, 5)
sage: print(f'{b}*{d} + {b}*{e}')
2*3*x + 2*5
sage: print(f'{b*d} + {b*e}')
6*x + 10
sage: print(b*a)
6*x + 10
可以写一个函数来
- 分析表达式树
- 检测其中一个因子为和的所有产品
- 询问用户要执行哪个扩展
- 打印所选扩展的步骤
- 重复
要做到正确,需要进行大量的试验和错误。
希望以上提示对您有所帮助。