そのようなブールルール/式があるとしましょう
(A OR B) AND (D OR E) AND F
あなたはそれをできるだけ多くのANDのみの式に変換したいのです
A AND D AND F
A AND E AND F
B AND D AND F
B AND E AND F
ORを減らしているだけなので、
(A AND D AND F) OR (A AND E AND F) OR (...)
これを行うブール代数のプロパティはありますか?
そのようなブールルール/式があるとしましょう
(A OR B) AND (D OR E) AND F
あなたはそれをできるだけ多くのANDのみの式に変換したいのです
A AND D AND F
A AND E AND F
B AND D AND F
B AND E AND F
ORを減らしているだけなので、
(A AND D AND F) OR (A AND E AND F) OR (...)
これを行うブール代数のプロパティはありますか?
DeMorgan の定理を見てみましょう。リンクは電子ゲートに関連するドキュメントを指していますが、理論は同じままです.
次の場合、論理バイナリ式は変更されないままです。
(上記リンク先ドキュメントより引用)
hereに示すように、あなたの例は OR よりも AND の分配性を利用しています。
あなたがする必要があるのは、それを連続して適用することだけです。たとえば、次のように使用しx*(y+z) = (x*y)+(x*z)
ます (* は AND を表し、+ は OR を表します)。
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
カルノー図について読むことに興味があるかもしれません。これらはブール式を単純化するためのツールですが、これらを使用して個々の式をすべて決定することもできます。ただし、これをプログラムを作成できるアルゴリズムに一般化する方法はわかりません。
私の知る限り、ブール代数は AND 演算と OR 演算だけでは構築できません。この 2 つの操作しかない場合は、NOT 操作を受け取ることができません。
任意の式をブール演算の完全なセットに変換できます。
ここにいくつかのフルセットがあります:
NOT 演算を使用できると仮定すると、任意のブール式を AND のみまたは OR のみで書き換えることができます。あなたの場合:
(A OR B) AND (D OR E) AND F
私は上記をエンジニアリングの省略形で表現する傾向があり、次のように記述します。
そう:
(A+B)(D+E)F
算術の帰結は、因数分解の項に実際に非常に役立ちます。
ド・モルガンの法則によると:
(A+B) => (A'B')'
したがって、式を次のように書き換えることができます。
(A+B)(D+E)F
(A'B')'(D'E')'F