请原谅我,如果这是一个基本问题,或者如果已经有丰富的解决方案,但我不知道如何简洁地表达这个问题,我找不到任何结果。我一直在思考这个问题很长一段时间,我似乎无法找到解决方案。符号比较
我想要做的是通过字符串比较符号声明。例如,在数学,
4x = 4x is true.
但对于
(12/3)x = 4x
(5-1)x = (4/1)x
((5-1)/1)x = (4/1)x
so on . . .
在证明,
1 = sin(x)^2 + cos(x)^2
tan(x) = sin(x)/cos(x)
sin(2x) = 2*sin(x)*cos(x)
and so on . . .
在逻辑,
~~p <-> p
~(p * q) <-> (~p v ~q)
~(p v q) <-> (~p * ~q)
(p v q) <-> (q v p)
(p * q) <-> (q * p)
and so on . . .
请记住,这些投入字符串。我遇到的问题是理论上存在无限量的双方可以平等的情况。
当然,第一个问题是如何解析数值与符号值并枚举它们。我在这方面行得通。
我什至不知道从哪里开始,所以任何指针将不胜感激。
归结为表达式树的简化算法。出于某种原因,许多人使用'LISP'完成这项任务,我不知道为什么。 – ja72
@ ja72:我认为人们使用LISP是因为它具有象征性的操作功能,但它也可能是历史性的。实际上,许多早期的计算机代数系统都是用LISP编写的,我的答案中的一条评论引用了一本为其系统使用LISP(Scheme)方言的书。 – RonaldBarzell
我真的不明白为什么这是封闭的**不具有建设性**。是否因为没有涉及代码?因为相关信息*是由有信誉的来源引入的,虽然我没有得到代码示例,但至少我得到了一些认真的理论解决方案。即使解决方案本身也很难理解和推。。只有一个回答者和另一个有用的评论者,所以唯一回答的人指出了我正确的方向并得到了答案。没有辩论,争论或投票。我不明白为什么它被关闭了。 – rbtLong