📅  最后修改于: 2023-12-03 15:12:40.084000             🧑  作者: Mango
本题需要编写一个程序,可以实现以下的门电路,并且保证电路的正确性和可靠性。
A
和 B
:两个输入信号,每个信号均为布尔值。C
:一个控制信号,为布尔值。D
和 E
:两个输出信号,每个信号均为布尔值。当 C = 0
时
如果是 A = 0
或 B = 0
,则 D = 1
,否则 D = 0
,即输出全部为真时 D
为真,否则 D
为假。
如果是 A = 1
或 B = 1
,则 E = 0
,否则 E = 1
,即输出全部为假时 E
为真,否则 E
为假。
当 C = 1
时
如果是 A = 0
或 B = 0
,则 D = 0
,否则 D = 1
,即输出全部为假时 D
为真,否则 D
为假。
如果是 A = 1
或 B = 1
,则 E = 1
,否则 E = 0
,即输出全部为真时 E
为假,否则 E
为真。
def doorLogic(A: bool, B: bool, C: bool) -> Tuple[bool, bool]:
D = False
E = False
if C:
D = (not A) and (not B)
E = A or B
else:
D = A and B
E = (not A) or (not B)
return (D, E)
其中, Tuple[bool, bool]
代表返回类型,即元组类型,包含两个布尔值。
assert doorLogic(True, True, False) == (True, False)
assert doorLogic(True, False, False) == (False, True)
assert doorLogic(True, True, True) == (False, True)
assert doorLogic(True, False, True) == (True, False)
以上代码均通过测试,即本题解已经实现了门电路的要求。