【发布时间】:2019-02-18 18:11:50
【问题描述】:
我正在解决 Java 中由 AND、OR 和 NOT 运算符组成的逻辑表达式。
如果输入为TRUE,程序必须输出包含变量的任何布尔值。我已经成功了,但是效率不够。
我目前的解决方案是这样的:
为表达式中的每个变量制作一个真值表并逐行计算。
(p ∧ ¬q) ∨ (r ∧ s) ∨ (¬p ∨ u)
在上面的示例中,我必须使用变量真值表 p q r s 来评估整个表达式。
现在,我正在考虑实施一个替代解决方案,如下所示: 考虑上面的例子。
我们可以注意到,即使只解决了p ∧ ¬q 部分,所有的表达式都是TRUE。这为我们省去了 3 个额外变量的麻烦。
现在,我的问题是这样的。如何在 JAVA 中编程?我什至如何知道输入是否具有上述模式?或者它只是我必须为整个真值表评估的表达式?像下面那个
(p ∨ ¬q) ∧ (r ∨ (s ∧ (¬p ∨ u)))
【问题讨论】:
-
充其量,也许您可以使用boolean algebra简化表达式
标签: java performance logical-operators coding-efficiency truthtable