在The Pleasure of Finding Things Out 的第 2 章中,Richard P. Feynman 讨论了与构建非常小尺寸的计算机相关的物理限制。他介绍了可逆逻辑门的概念:
Bennett 以及 Fredkin 的伟大发现是,可以使用不同类型的基本门单元(即可逆门单元)进行计算。我已经用一个我可以称之为可逆与非门的单元来说明他们的想法。
他接着描述了他所谓的可逆与非门的行为:
它具有三个输入和三个输出。在输出中,两个 A' 和 B' 与两个输入 A 和 B 相同,但第三个输入以这种方式工作。C' 与 C 相同,除非 A 和 B 都为 1,在这种情况下,C 会改变 C 是什么。例如,如果 C 为 1,则将其更改为 0,如果 C 为 0,则将其更改为 1——但这些更改仅在 A 和 B 都为 1 时发生。
这本书包含一个可逆门的图表,我附在下面(链接):
经典的不可逆与非门(输入:A,B;输出:C)的真值表如下:
如果我正确理解了费曼的描述,费曼所说的可逆与非门的真值表应该如下:
但是,我不明白为什么费曼将他的门称为 NAND。一个人应该如何用他的门推导出 NAND(A,B) 的结果?在我看来,NAND(A,B)不能直接从三个输出(A',B',C')中的任何一个导出。NAND(A,B) 由 XOR(C,C') 给出,但这需要一个额外的 XOR 门。那么,为什么费曼将他的门称为与非门呢?