有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在求解布尔表达式时如何思考?

我有以下问题:

设a和b为布尔变量。是否可以为a和b设置值,使下面的表达式计算为false?b或((非a或(非a))或(a或(非b))

最好的办法是什么?我知道在一张纸上列出所有四种可能性会给我答案,但有没有有效的策略来处理这种问题


共 (1) 个答案

  1. # 1 楼答案

    第二部分的答案是:在现实世界中,你会使用所谓的SAT solver(为了满足性)。意思是:你可以手动简化小的方程,但在现实世界中,你可能有数百万个变量的方程,然后你转向SAT解算器

    深入研究这些工具的工作原理是计算机科学基本主题的一个极好的切入点。见resp。听这个podcast举个例子。它讨论了P和NP之间的差异,然后花了大量时间解释了为什么我们现在能够有效地解决大型SAT问题(它们是NP)