我想简化以下公式:
(A || B) && (C || D) => (A && C) || (A && D) || (B && C) || (B && D)
A => (A)
A && (B || C) => (A && B) || (A && C)
A && B => (A && B)
A || B => (A) || (B)
所需结果:与||
相结合的群组列表,而每个群组仅包含&&
是否存在解决此类问题的解决方案?有人可以帮忙吗?
也许有人可以告诉我与此问题相关的词语?因为我不知道这是怎么称呼的,而且公式求解器是不同的......
答案 0 :(得分:1)
也许有人可以告诉我与此问题相关的词语?因为我不知道如何调用它并且公式求解器是不同的......
我相信你所寻找的是公式的disjunctive normal form。显然你不需要完整的表格,因为你不需要在每个括号中出现每个字母(有或没有否定)。这意味着您的结果通常不是唯一定义的。
只要您的原始公式不包含任何否定,distributive law可能是重新排序布尔连接词的最有用工具。如果否定也发挥作用,De Morgan's laws也会变得相关。
如果您搜索Stack Overflow的析取正常形式,您会发现各种语言转换为此表单的各种请求。他们中的许多人可能会以完整的形式为目标,所以当你在那里阅读答案时,请记住这一点。