【发布时间】:2018-01-18 18:40:57
【问题描述】:
我试图找到一个带有 AND、OR 和 NOT 门的布尔电路,仅用于计算 ¬((A → ¬B) ∧ (C → A)) 的布尔函数。我的尝试是:
我在两个关节上放置箭头的位置(我相信“→ 或暗示”在函数中的位置)是我想问的关于如何在电路上表示它?如果我在正确的轨道上,请指导我,因为我是新手。谢谢。
【问题讨论】:
标签: logic boolean-logic boolean-expression circuit
我试图找到一个带有 AND、OR 和 NOT 门的布尔电路,仅用于计算 ¬((A → ¬B) ∧ (C → A)) 的布尔函数。我的尝试是:
我在两个关节上放置箭头的位置(我相信“→ 或暗示”在函数中的位置)是我想问的关于如何在电路上表示它?如果我在正确的轨道上,请指导我,因为我是新手。谢谢。
【问题讨论】:
标签: logic boolean-logic boolean-expression circuit
你的初始表达式:¬((A → ¬B) ∧ (C → A))
让我们分解一下:A→B = ¬AvB 将其应用于您的表达式:
¬((¬Av¬B)∧(¬CvA))
符号定义:
¬ = NOT v = OR ∧ = AND
现在我们需要分解这个表达式:
(¬Av¬B)∧(¬CvA)
这又由两个子表达式组成,表示将 AND 运算应用于 (¬Av¬B) 的结果和 (¬CvA) 的结果。为此,我们需要为括号中的每个表达式定义逻辑电路。
现在我们已经定义了它们,我们可以回到我们原来的 (¬Av¬B)∧(¬CvA) 子表达式。现在这告诉我们将使用与门制作的逻辑电路的输出组合起来。为了更容易理解,让 (¬Av¬B) = E 和 (¬CvA) = F 现在我们有表达式 E∧F 或 E 和 F。见下图。
现在我们为表达式 (¬Av¬B)∧(¬CvA) 创建了一个逻辑电路,我们可以将其称为 G。我们的原始表达式是 ¬((¬Av¬B)∧(¬CvA)),它可以定义为 ¬(G) 或 NOT(G),它正在反转(或应用非门)到我们刚刚制作的逻辑电路的输出。见下图:
如您所见,创建逻辑电路有多层“抽象”,这些逻辑电路由分隔表达式的括号定义。这有什么帮助。以下是一些可能对您有所帮助的进一步阅读链接:
【讨论】:
您不能在地图上表示这些点:顶部的点是非法的,因为它将输入连接到中间输出,而底部的点将两个输入连接在一起。
一种方法是将蕴涵 X → Y 替换为表达式中的逻辑等价 ¬X ∨ Y,并简化结果:
¬((¬A ∨ ¬B) ∧ (¬C ∨ A))
解决此问题的另一种方法是为表达式构造一个真值表,将其放入Karnaugh Map,然后读取由 AND、OR 和 NOT 组成的简化表达式 (Canonical Disjunctive Normal Form).。
【讨论】: