请原谅我,如果这是一个基本问题,或者已经有丰富的解决方案,但我不知道如何简明扼要地阐述这个问题,我找不到任何结果。我一直在考虑这个问题很长一段时间,我似乎无法找到解决方案。
我想要做的是通过字符串比较符号语句。例如,在数学中,
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 . . .
请记住,这些输入是字符串。我遇到的问题是理论上存在无限量的双方都可以平等的情况。
当然,第一个问题是如何解析数值与符号值并枚举它们。我在这方面很好。
我甚至不知道从哪里开始,所以任何指针都会受到赞赏。
答案 0 :(得分:3)
我会得到一个符号代数包。他们可以做一些事情,例如推导,简化和与减少的比较。许多也是可编程的。那里有一些好的免费的。
这里有一个列表: http://en.wikipedia.org/wiki/List_of_computer_algebra_systems
如果您正在寻找在代码中执行此操作的方法,也许您可以找到适合您所选语言的符号代数库。