【问题标题】:finding a boolean circuit with AND, OR and NOT gates only找到一个只有 AND、OR 和 NOT 门的布尔电路
【发布时间】:2018-01-18 18:40:57
【问题描述】:

我试图找到一个带有 AND、OR 和 NOT 门的布尔电路,仅用于计算 ¬((A → ¬B) ∧ (C → A)) 的布尔函数。我的尝试是:

我在两个关节上放置箭头的位置(我相信“→ 或暗示”在函数中的位置)是我想问的关于如何在电路上表示它?如果我在正确的轨道上,请指导我,因为我是新手。谢谢。

【问题讨论】:

    标签: logic boolean-logic boolean-expression circuit


    【解决方案1】:

    你的初始表达式:¬((A → ¬B) ∧ (C → A))

    让我们分解一下:A→B = ¬AvB 将其应用于您的表达式:

    ¬((¬Av¬B)∧(¬CvA))

    符号定义:

    ¬ = NOT v = OR ∧ = AND

    现在我们需要分解这个表达式:

    1. 括号外的 NOT 表示将 NOT 运算应用于括号内的所有内容(本质上是反转值)。我们现在可以忽略它并专注于括号中的内容。新表达式:

    (¬Av¬B)∧(¬CvA)

    这又由两个子表达式组成,表示将 AND 运算应用于 (¬Av¬B) 的结果和 (¬CvA) 的结果。为此,我们需要为括号中的每个表达式定义逻辑电路。

    以 (¬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),它正在反转(或应用非门)到我们刚刚制作的逻辑电路的输出。见下图:

    如您所见,创建逻辑电路有多层“抽象”,这些逻辑电路由分隔表达式的括号定义。这有什么帮助。以下是一些可能对您有所帮助的进一步阅读链接:

    布尔代数:维基:https://en.wikipedia.org/wiki/Boolean_algebra

    卡诺图:https://en.wikipedia.org/wiki/Karnaugh_map

    【讨论】:

      【解决方案2】:

      您不能在地图上表示这些点:顶部的点是非法的,因为它将输入连接到中间输出,而底部的点将两个输入连接在一起。

      一种方法是将蕴涵 X → Y 替换为表达式中的逻辑等价 ¬X ∨ Y,并简化结果:

      ¬((¬A ∨ ¬B) ∧ (¬C ∨ A))

      解决此问题的另一种方法是为表达式构造一个真值表,将其放入Karnaugh Map,然后读取由 AND、OR 和 NOT 组成的简化表达式 (Canonical Disjunctive Normal Form).

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-09
        • 1970-01-01
        • 1970-01-01
        • 2011-05-08
        • 2020-10-12
        相关资源
        最近更新 更多