表示逻辑表达的有效方法

时间:2018-12-15 08:31:33

标签: boolean language-agnostic expression logical-or

我正在编写一个表示逻辑表达式的控制台程序(类似于AB'C + A'C),以便可以简化(优化)表达式并评估其值。我尝试使用string来表示一个表达式,但是通过这种方式,我只能基于输入值来评估其值,但是优化表示为字符串的表达式非常困难(对我来说),例如{ 1}}可以是ABC + AB,因为AB = ABC+AB = AB(C+1)。我还认为它是使用AB的另一种方式。例如,vector of vector of literal将如下图所示:

enter image description here

说明:在上面的示例中,每一列代表每个术语。第一列代表AB'C + AB + BC,第二列代表AB'C,第三列代表AB。 我认为这是呈现逻辑表达式的一种好方法,但是我仍然找不到通过这种方法优化抑制的表达式的方法。我也用谷歌搜索,但没有找到解决该问题的示例项目。

简而言之,我希望有人给我建议一种更容易表示,评估和优化逻辑表达式的方法。预先感谢!

1 个答案:

答案 0 :(得分:1)

  

如何表示,评估和优化逻辑表达式?

要表示这一点,您需要使用表达式树,并且由于您仅使用的是二进制运算符的逻辑运算符,因此您想使用binary expression tree或更确切地说是this

要简化树,请使用Boolean algebra的定律。

如果所有值均已绑定,则通过简化过程,树将简化为具有truefalse的根节点。

对于某些示例代码,我检查了Rosetta Code,但是它们没有计算布尔表达式的任务。最近的任务是arithmetic evaluation