📅  最后修改于: 2023-12-03 15:28:36.958000             🧑  作者: Mango
这是GATE CS 1996中的一个问题,涉及到逻辑门和布尔代数。
某人设计了一个电路,该电路有三个输入A、B和C和一个输出X,如下所示:
其中,表示逻辑非门(NOT),表示逻辑与门(AND)和表示逻辑或门(OR)。
该电路实现的布尔函数f(A, B, C)的真值表如下:
| A | B | C | f(A, B, C) | |:-:|:-:|:-:|:----------:| | 0 | 0 | 0 | 1 | | 0 | 0 | 1 | 0 | | 0 | 1 | 0 | 1 | | 0 | 1 | 1 | 0 | | 1 | 0 | 0 | 1 | | 1 | 0 | 1 | 1 | | 1 | 1 | 0 | 0 | | 1 | 1 | 1 | 1 |
请根据所给信息回答以下问题:
对于每一行真值表,找到输出为1的情况并将其转化为布尔表达式,则可得到以下结果:
f(A, B, C) = (not A and not C) or (not A and B) or (A and C) or (A and not B and not C)
根据布尔表达式,可以推导出每个逻辑门的输入和输出。
具体证明如下:
对于非门(NOT),其输入为A、B或C之一,输出为A'、B'或C'之一。根据异或门的定义,当两个输入不同时,输出为1;当两个输入相同时,输出为0。因此,如果将输入与输出通过异或门连接起来,则可得到非门。例如,将A与A'通过异或门连接,则当A=0时,输出为1;当A=1时,输出为0,即为非门的输出。
对于与门(AND),其输入为A、B和C,输出为X。根据与非门的定义,当两个输入均为1时,输出为0;否则输出为1。因此,将输出X与一个与非门相连,其中输入为A、B和C,输出为Y,则可得到与门。如果X=1,则A、B和C中至少有一个为0,因此Y=0;如果X=0,则A、B和C均为1,因此Y=1。
对于或门(OR),其输入为A、B和C,输出为X。根据与门的定义,当两个输入均为0时,输出为0;否则输出为1。因此,将A、B和C各与一个非门相连,其中输入为A、B和C,输出为P、Q和R,则可得到或门。如果X=0,则P、Q和R均为1,因此A、B和C中至少有一个为0,满足或门的定义;如果X=1,则P、Q和R中至少有一个为0,因此A、B和C中至少有一个为1,不满足或门的定义。
在得到每个逻辑门的输入输出之后,可以回答每一个问题。