algorithm - 符号比较

标签 algorithm math comparison logic discrete-mathematics

如果这是一个基本问题或者已经有丰富的解决方案,请原谅我,但我不知道如何简洁地阐明这个问题,并且我找不到任何结果。这个问题我想了很久,一直没有找到解决办法。

我想做的是通过字符串比较符号语句。例如,在数学中,

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 . . .

请记住,这些输入是字符串。我遇到的问题是,理论上有无数种双方可以相等的情况。

当然,第一个问题是如何解析数值与符号值并枚举它们。我对此表示同意。

我什至不知道从哪里开始,因此我们将不胜感激。

最佳答案

我会得到一个符号代数包。他们可以进行推导、简化以及与归约比较等操作。许多也是可编程的。有一些很好的免费软件。

这里有一个列表: http://en.wikipedia.org/wiki/List_of_computer_algebra_systems

如果您正在寻找一种在代码中执行此操作的方法,也许您可​​以找到适合您选择的语言的符号代数库。

关于algorithm - 符号比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13982724/

相关文章:

Python - 遗传算法错误的帮助

algorithm - 如何检查给定数字 N, N^2 是否可以表示为两个非零整数的平方和?

python - 更好的算法来随机播放(或交错)多个不同长度的列表

c++ - 将输入文件中的数据位置更改为.cpp程序

javascript - 为 JS Pendulum 添加倾销

Opengl计算三角形导数

比较两个 float

java - 比较两个复杂对象时如何返回比较差异?

ios - UITextField 和 UILabel 的奇怪比较

Java 和 .NET : Why different sorting algorithms are used by default?