Parsing 重构布尔方程
假设您有这样一个布尔规则/表达式Parsing 重构布尔方程,parsing,boolean,expression,equation,Parsing,Boolean,Expression,Equation,假设您有这样一个布尔规则/表达式 (A OR B) AND (D OR E) AND F 您希望将其转换为尽可能多且唯一的表达式,如下所示 A AND D AND F A AND E AND F B AND D AND F B AND E AND F 你只是减少了手术室的大小 (A AND D AND F) OR (A AND E AND F) OR (...) 布尔代数中有这样的性质吗 看看这个定理。链接指向一份与电子门有关的文件,但理论仍然是一样的 它说,任何逻辑二进制表达式保持不变,
(A OR B) AND (D OR E) AND F
您希望将其转换为尽可能多且唯一的表达式,如下所示
A AND D AND F
A AND E AND F
B AND D AND F
B AND E AND F
你只是减少了手术室的大小
(A AND D AND F) OR (A AND E AND F) OR (...)
布尔代数中有这样的性质吗 看看这个定理。链接指向一份与电子门有关的文件,但理论仍然是一样的
它说,任何逻辑二进制表达式保持不变,如果我们
将所有变量更改为它们的补码。
将所有和操作更改为ORs。
将所有或操作更改为ANDs。
取整个表达式的补码。
引用上面链接的文档看看定理。链接指向一份与电子门有关的文件,但理论仍然是一样的
它说,任何逻辑二进制表达式保持不变,如果我们
将所有变量更改为它们的补码。
将所有和操作更改为ORs。
将所有或操作更改为ANDs。
取整个表达式的补码。
引用上面链接的文档据我所知,布尔代数不能仅用AND和OR运算构建。 如果只有这两个操作,则无法接收not操作 可以将任何表达式转换为完整的布尔运算集 以下是一些全套: 而不是 还是不
据我所知,布尔代数不能只用AND和OR运算来建立。 如果只有这两个操作,则无法接收not操作 可以将任何表达式转换为完整的布尔运算集 以下是一些全套: 而不是 还是不
假设可以使用NOT操作,则可以仅使用AND或or重写任何布尔表达式。就你而言:
(A OR B) AND (D OR E) AND F
我倾向于使用工程速记来描述上述内容,并写道:
作为一种产品。或者什么都没有;
或作为总和+;和
不作为一个单一的报价'。
因此:
算术的推论实际上对分解术语非常有用
作者:
因此,您可以将表达式改写为:
(A+B)(D+E)F
(A'B')'(D'E')'F
假设可以使用NOT操作,则可以仅使用AND或or重写任何布尔表达式。就你而言:
(A OR B) AND (D OR E) AND F
我倾向于使用工程速记来描述上述内容,并写道:
作为一种产品。或者什么都没有;
或作为总和+;和
不作为一个单一的报价'。
因此:
算术的推论实际上对分解术语非常有用
作者:
因此,您可以将表达式改写为:
(A+B)(D+E)F
(A'B')'(D'E')'F
如图所示,您的示例正在利用和的分布性 你所需要做的就是依次应用它。例如,使用x*y+z=x*y+x*z,其中*表示和+表示或:
0. (A + B) * (D + E) * F
1. Apply to the first 2 brackets results in ((A+B)*D)+((A+B)*E)
2. Apply to content of each bracket results in (A*D+B*D)+(A*E+B*E)
3. So now you have ((A*D+B*D)+(A*E+B*E))*F
4. Applying the law again results in (A*D+B*D)*F+(A*E+B*E)*F
5. Apply one more time results in A*D*F+B*D*F+A*E*F+B*E*F, QED
如图所示,您的示例正在利用和的分布性 你所需要做的就是依次应用它。例如,使用x*y+z=x*y+x*z,其中*表示和+表示或:
0. (A + B) * (D + E) * F
1. Apply to the first 2 brackets results in ((A+B)*D)+((A+B)*E)
2. Apply to content of each bracket results in (A*D+B*D)+(A*E+B*E)
3. So now you have ((A*D+B*D)+(A*E+B*E))*F
4. Applying the law again results in (A*D+B*D)*F+(A*E+B*E)*F
5. Apply one more time results in A*D*F+B*D*F+A*E*F+B*E*F, QED
你可能有兴趣阅读有关。它们是简化布尔表达式的工具,但您也可以使用它们来确定所有单独的表达式。我不知道你如何将它推广到一个你可以为之编写程序的算法中。你可能有兴趣阅读。它们是简化布尔表达式的工具,但您也可以使用它们来确定所有单独的表达式。我不确定如何将其推广到一个算法中,您可以为其编写一个程序。您可能会感兴趣,或者它的兄弟 您可能对它或它的兄弟感兴趣 我不明白你如何使用或需要DeMorgan定理来执行问题中的重构。你能提供一个有效的解决方案吗?不容易。De Morgan告诉您如何转换布尔表达式,同时保持相同的最终结果。在上述步骤中,您可以使用步骤2和步骤3来确定是否转换表达式以使and最大化,例如,您的and是否多于or,反之亦然?DeMorgan定理并不立即适用。这里应用的是合取大于析取的分布性质,而不是DeMorgan定理。所有的重言式规则告诉你如何变换布尔表达式,同时保持相同的最终结果,它们只是变换不同的东西。如果没有AND,..NOT或AND,..NOT,DeMorgan的定理在这里就不适用于蕴涵等价规则{a或NOT B}={a IMP B}。我不知道如何使用或需要DeMorgan的定理来执行问题中的重构。你能提供一个有效的解决方案吗?不容易。De Morgan告诉您如何转换布尔表达式,同时保持相同的最终结果。在上述步骤中,您可以使用步骤2和3来确定是否转换表达式以使and最大化,例如,您的and是否多于or,反之亦然?DeMorgan定理不是立即适用的。它是D上的连接的分布性质
这里应用的是交叉点,而不是DeMorgan定理。所有的重言式规则告诉你如何变换布尔表达式,同时保持相同的最终结果,它们只是变换不同的东西。如果没有AND..NOT或AND..NOT,DeMorgan的定理在这里就不适用于蕴涵等价规则{a或NOT B}={a IMP B}。True,但不是被问到的。True,但不是被问到的。