您所描述的是功能完整性。
这描述了一组逻辑运算符,足以“表达所有可能的真值表”。您的Java运算符集{ ||
,!
}就足够了;它对应于{∨,¬}集,该集列在“最小功能完备的算子集”部分。
所有真值表的集合意味着所有可能的4个布尔值的集合,它们可以是2个布尔值之间的运算结果。因为布尔值有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
还有许多其他这样的功能完备的集合,包括一个元素集{NAND}和{NOR},它们在Java中没有相应的单个运算符。