-2

我正在编写一个控制台程序来表示逻辑表达式(类似的东西AB'C + A'C),以便我可以简化(优化)表达式并评估它们的值。我尝试使用string来表示一个表达式,但是这样,我只能根据输入值来评估它的值,但是优化一个表示为字符串的表达式是非常困难的(对我来说),例如,ABC + AB可能是AB因为ABC+AB= AB(C+1)= AB。我也想到了它使用的另一种方式vector of vector of literal。示例,AB'C + AB + BC将表示如下图:

在此处输入图像描述

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

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

4

1 回答 1

1

如何表示、评估和优化一个逻辑表达式?

为了表示这一点,您需要使用表达式树,并且由于您仅使用作为二元运算符的逻辑运算符,因此您希望使用二元表达式树或更具体地this

为了简化树,您使用布尔代数定律。

true如果所有值都是绑定的,那么通过简化过程,树将简化为具有或的根节点false

对于一些示例代码,我检查了Rosetta Code,但他们没有评估布尔表达式的任务。最接近的任务是算术评估

于 2018-12-16T14:49:23.197 回答