📜  门| Sudo GATE 2021 测验 |问题 3(1)

📅  最后修改于: 2023-12-03 15:42:20.463000             🧑  作者: Mango

门 | Sudo GATE 2021 测试 | 问题 3

本题涉及“门模拟器”问题。门模拟器是一种能够模拟逻辑门电路功能的计算机程序。在本问题中,我们将使用 2-input AND 门作为示例,但是您需要设计的程序应该可以处理更多电路元件和门类型。

问题描述

门模拟器接受输入的描述方式如下:

  • 用以逗号分隔的整数表示的变量列表。例如 1, 2, 3 表示变量 1, 23
  • 每一行都表示一种逻辑门,语法如下: Gate_Type Output_Variable Input_Variables。例如 AND 4 1 2 表示输出变量 4 是变量 12 的 AND。

编写一个程序,它将给定的输入转换为一个逻辑布尔电路,并输出每个输入变量的值,以及每个输出变量的值。

输入格式

第一行包含一个整数 n,表示输入变量的数量。

第二行包含以逗号分隔的变量列表。

之后的若干行表示逻辑门。每行包含一个字符串 Gate_Type 和若干用空格分隔的整数。其中第一个整数为输出变量编号,随后的整数为输入变量编号,逗号隔开。

输出格式

输出有两部分。在第一部分中,对于每个输入变量,打印一行,格式为 Variable X: Value Y,其中 X 是变量编号,Y 是变量的值(0 或 1)。

在第二部分中,对于每个输出变量,打印一行,格式为 Gate X: Value Y,其中 X 是门的编号,Y 是门的输出值(0 或 1)。

输出必须按照输入变量的顺序排序,然后按照门的顺序排序。

样例输入
6
1, 2, 3, 4, 5, 6
AND 4 2 3
AND 5 4 1
AND 6 5 4
样例输出
Variable 1: Value 0
Variable 2: Value 0
Variable 3: Value 0
Variable 4: Value 0
Variable 5: Value 0
Variable 6: Value 0
Gate 4: Value 0
Gate 5: Value 0
Gate 6: Value 0
提示

在本问题中,只有 AND 门被使用,因此您的程序只需要实现这一种门。但是,在实际应用中,许多其他门也被使用,例如或门、非门、异或门等。你应该考虑支持多种类型的门,并对其进行适当的组合以构建更复杂的电路。