在寻找事物的乐趣的第2章中,Richard P. Feynman讨论了与构建非常小的计算机相关的物理限制。他介绍了可逆逻辑门的概念:
Bennett以及独立于Fredkin的伟大发现是,可以使用不同类型的基本门单元(即可逆门单元)进行计算。我已经说明了他们的想法 - 用一个可称为可逆NAND门的单元。
他继续描述他所谓的可逆NAND门的行为:
它有三个输入和三个输出。在输出中,两个A'和B'与两个输入A和B相同,但第三个输入以这种方式工作。除非A和B都是1,否则C'与C相同,在这种情况下,C改变C是什么。例如,如果C为1则更改为0,如果C为0则更改为1 ---但只有当A和B都为1时才会发生这些更改。
这本书包含了一个可逆门的图表,我已在下面附上(link):
经典的,不可逆的与非门的真值表(输入:A,B;输出:C)如下:
如果我理解Feynman的描述,Feynman所说的可逆NAND门的真值表应该如下:
然而,我不明白为什么费曼称他的门是NAND。一个人应该如何用他的门导出NAND(A,B)的结果?在我看来,NAND(A,B)不能直接从三个输出(A',B',C')中的任何一个输出。 NAND(A,B)由XOR(C,C')给出,但这需要额外的XOR门。那么为什么费曼把他的门称为与非门?
答案 0 :(得分:3)
正如其他人所提到的,当输入C = 1时,输出C'= A NAND B。
然而,关键是没有信息被销毁。给定输出,可以确定输入。将其与正常的与非门对比,其中仅在给定输出的情况下不能确定输入;信息被破坏了。使用可逆的与非门,不会丢失信息。没有信息丢失是重要的,因为理论上可以没有能量损失。
答案 1 :(得分:1)
如果你设置C,那么C'是A NAND B。
(我没有读过这篇论文,但我猜测C是使门“可逆”的原因 - 用C设置它是一个与非门,用C清除它是一个AND门。)