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
6 回答
是 .
All logic gates can be made from NOR gates.
由于NOR门可以由NOT和OR构成,因此结果如下 .
NAND和NOR是通用的,它们可用于在任何地方构建您想要的任何逻辑操作;其他运算符以编程语言提供,以便于编写和生成可读代码 .
此外,所有需要在电路中硬连线的逻辑操作也是使用NAND或NOR专用IC开发的 .
是的,正如其他答案所指出的那样,包含
||
和!
的运算符集是functionally complete . 这是一个建设性的证明,展示如何使用它们来表达布尔变量A
和B
之间的所有16个可能的逻辑连接词:True:
A || !A
A NAND B:
!A || !B
B implies A:
!B || A
A implies B:
!A || B
A OR B:
A || B
Not B:
!B
Not A:
!A
A XOR B:
!(!A || B) || !(A || !B)
A XNOR B:
!(!A || !B) || !(A || B)
A:
A
B:
B
A NOR B:
!(A || B)
A does not imply B:
!(!A || B)
B does not imply A:
!(!B || A)
A AND B:
!(!A || !B)
False:
!(A || !A)
请注意,NAND和NOR本身在功能上都是完整的(可以使用上面相同的方法证明),因此如果您想验证一组运算符是否功能完备,那么足以表明您可以表达NAND或NOR用它 .
这是显示上面列出的每个连接词的Venn diagrams的图表:
[source]
你所描述的是functional completeness .
这描述了一组足以满足"express all possible truth tables"的逻辑运算符 . 您的Java运算符集{
||
,!
}就足够了;它对应于集合{∨,¬},它列在"Minimal functionally complete operator sets"部分下 .所有真值表的集合表示所有可能的4个布尔值集合,这些值可以是2个布尔值之间的操作的结果 . 因为布尔值有2个可能的值,所以有24或16个可能的真值表 .
这是一个真值表数字表(0-15),产生它的
||
和!
组合以及描述 .还有很多其他功能完备的集合,包括一个元素集和,它们在Java中没有相应的单个运算符 .
如果可以,请花点时间阅读DeMorgan's Laws .
您将在阅读中找到答案,并参考逻辑证明 .
但基本上,答案是肯定的 .
EDIT :为了明确,我的观点是,可以从AND表达式逻辑推断OR表达式,反之亦然 . 对于逻辑等价和推理,还有更多的定律,但我认为这是最合适的 .
EDIT 2 :这是一个通过真值表的证明,显示了下面表达式的逻辑等价 .
德摩根定律:
!(!A || !B) -> A && B
是的,根据布尔代数,任何布尔函数都可以表示为minterms的总和或maxterms的乘积,称为规范的正规形式 . 没有理由将这种逻辑应用于计算机科学中使用的相同运算符 .
https://en.wikipedia.org/wiki/Canonical_normal_form