あなたが説明しているのは機能の完全性です。
これは、「可能なすべての真理値表を表現する」のに十分な論理演算子のセットを記述します。Javaオペレーターセット{ ||
、!
}で十分です。これは、「最小の機能的に完全な演算子セット」のセクションにリストされているセット{∨、¬}に対応しています。
すべての真理値表のセットは、2つのブール値の間の演算の結果である可能性がある4つのブール値のすべての可能なセットを意味します。ブール値には2つの可能な値があるため、2 つの4または16の可能な真理値表があります。
A B | 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
----+------------------------------------------------
T T | T T T T T T T T F F F F F F F F
T F | T T T T F F F F T T T T F F F F
F T | T T F F T T F F T T F F T T F F
F F | T F T F T F T F T F T F T F T F
ここで真理値表番号のテーブルは、(0-15)である||
と!
、それを生み出す組み合わせ、および説明。
Table | Operation(s) | Description
-------+----------------------------------+-------------
0 | A || !A | TRUE
1 | A || B | OR
2 | A || !B | B IMPLIES A
3 | A | A
4 | !A || B | A IMPLIES B
5 | B | B
6 | !(!A || !B) || !(A || B) | XNOR (equals)
7 | !(!A || !B) | AND
8 | !A || !B | NAND
9 | !(A || !B) || !(!A || B) | XOR
10 | !B | NOT B
11 | !(!A || B) | NOT A IMPLIES B
12 | !A | NOT A
13 | !(A || !B) | NOT B IMPLIES A
14 | !(A || B) | NOR
15 | !(A || !A) | FALSE
Javaには対応する単一の演算子を持たない1つの要素セット{NAND}と{NOR}を含む、このような機能的に完全なセットが他にもたくさんあります。