我正在努力解决Java中包含AND,OR和NOT运算符的逻辑表达式.
如果输入是TRUE包含的变量的任何布尔值,则程序必须输出.我已成功完成,但效率不高.
我目前的解决方案如下:
为表达式中的每个变量创建一个真值表,并逐行评估.
(p ? ¬q) ? (r ? s) ? (¬p ? u)
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我将用一个变量真值表来评估整个表达式p q r s.
现在,我正在考虑实现一个类似的替代解决方案:考虑上面的例子.
我们可以注意到,即使只是解决了这个p ? ¬q部分,所有的表达都会出现TRUE.这为我们节省了3个额外变量的麻烦.
现在,我的问题是这个.如何在JAVA中编程?我怎么才能知道输入是否有像上面那样的模式?或者它只是一个表达式,我必须评估整个真值表?就像下面那个
(p ? ¬q) ? (r ? (s ? (¬p ? u)))
Run Code Online (Sandbox Code Playgroud) java performance truthtable logical-operators coding-efficiency