为什么简化的布尔表达式中的括号不能用 AND 分隔?
Why can't brackets in a simplified Boolean expression be separated by an AND?
考虑这张 (A ∧ D) ∨ (B ∧ D) ∨ (A ∧ ¬B ∧ C ∧ D):
的映射
地图分为两部分,均为四个正方形。
从而产生 (B ∧ D) ∨ (A ∧ D) 的简化表达式,如下所示。
这符合以下规则:
"Groups must contain 1, 2, 4, 8, or in general 2^n cells"
但是,如果我以包含六个单元格的方式进行分组(不遵循 2^n 规则):
这将生成以下简化表达式:
(A ∨ B) ∧ D
我又运行试了几次这个。甚至拆分 Karnaugh maps,我将可能的八组分成六组和四组。我得出的结论是,当按 6 或任何非 2^n 的值拆分时,表达式中括号之间的布尔值为 ∧
(AND),而当使用 2^n 的组时,拆分布尔值是 ∨
(或)。
因此,由于大小不是 2^n 的组产生 AND 除法(在括号之间),这是否意味着布尔表达式中的括号 不能 用 AND 分隔?
并且通过代理,这就是卡诺图必须分为 2n 个正方形的组的原因吗?
备注
在线工具也专门使用 OR 分隔符进行简化:如图所示
(B ∧ D) ∨ (A ∧ D) 是此卡诺图的正确“乘积和”表达式,而 (A ∨ B) ∧ D 是等价表达式(根据“或分配律” ), 但 它不再是“乘积总和”形式。
你做了(而不是使用“OR 分配律”):而不是注意到(从卡诺图的顶部)第一个 2x2 块的 B 值没有改变并且 A 值没有对于第二个 2x2 块,您进一步注意到这两列大小为 2 的重叠形成了由 (A ∨ B) 定义的三列。
这很好,但它没有给出“乘积之和”(AND 变量组 OR 在一起),这与 2^n 规则相关。相反,你偶然得到了实际的“和的乘积”(多组 OR'd 变量 AND'd 在一起)。
获得最终结果的“正式”、“图形”、“传统”、“简单”等方式(也有 2^n 规则,但针对的是 0 而不是 1)是而不是 1,圈出 0,再次注意右侧顶部 and/or 的变量值没有改变,但这次 不是 这些值。在您的示例中,顶部的四个 0 和底部的四个 0 导致 D“总和”(注意这个“圆”从顶部到底部形成一个“逻辑”圆 so-to-speak)。剩余的两个 0 与它们上面的 0 和它们下面的 0 组合,得到 (A ∨ B)“和”(想法是覆盖所有 0,同时也选择最大的 2^n 块,即使它们重叠) . (A ∨ B) ∧ D 是这两个“和”的“乘积”。查看:
Minterm vs Maxterm Solution.
这个方法是“完美”的(只要“圈子”尽可能大,不遗漏任何东西)。如果“圆圈”不是尽可能大(但没有遗漏任何东西),结果在逻辑上仍然是正确的,但它会使用比最小值更多的门。
考虑这张 (A ∧ D) ∨ (B ∧ D) ∨ (A ∧ ¬B ∧ C ∧ D):
的映射地图分为两部分,均为四个正方形。 从而产生 (B ∧ D) ∨ (A ∧ D) 的简化表达式,如下所示。
这符合以下规则:
"Groups must contain 1, 2, 4, 8, or in general 2^n cells"
但是,如果我以包含六个单元格的方式进行分组(不遵循 2^n 规则):
这将生成以下简化表达式:
(A ∨ B) ∧ D
我又运行试了几次这个。甚至拆分 Karnaugh maps,我将可能的八组分成六组和四组。我得出的结论是,当按 6 或任何非 2^n 的值拆分时,表达式中括号之间的布尔值为 ∧
(AND),而当使用 2^n 的组时,拆分布尔值是 ∨
(或)。
因此,由于大小不是 2^n 的组产生 AND 除法(在括号之间),这是否意味着布尔表达式中的括号 不能 用 AND 分隔?
并且通过代理,这就是卡诺图必须分为 2n 个正方形的组的原因吗?
备注
在线工具也专门使用 OR 分隔符进行简化:如图所示
(B ∧ D) ∨ (A ∧ D) 是此卡诺图的正确“乘积和”表达式,而 (A ∨ B) ∧ D 是等价表达式(根据“或分配律” ), 但 它不再是“乘积总和”形式。
你做了(而不是使用“OR 分配律”):而不是注意到(从卡诺图的顶部)第一个 2x2 块的 B 值没有改变并且 A 值没有对于第二个 2x2 块,您进一步注意到这两列大小为 2 的重叠形成了由 (A ∨ B) 定义的三列。
这很好,但它没有给出“乘积之和”(AND 变量组 OR 在一起),这与 2^n 规则相关。相反,你偶然得到了实际的“和的乘积”(多组 OR'd 变量 AND'd 在一起)。
获得最终结果的“正式”、“图形”、“传统”、“简单”等方式(也有 2^n 规则,但针对的是 0 而不是 1)是而不是 1,圈出 0,再次注意右侧顶部 and/or 的变量值没有改变,但这次 不是 这些值。在您的示例中,顶部的四个 0 和底部的四个 0 导致 D“总和”(注意这个“圆”从顶部到底部形成一个“逻辑”圆 so-to-speak)。剩余的两个 0 与它们上面的 0 和它们下面的 0 组合,得到 (A ∨ B)“和”(想法是覆盖所有 0,同时也选择最大的 2^n 块,即使它们重叠) . (A ∨ B) ∧ D 是这两个“和”的“乘积”。查看: Minterm vs Maxterm Solution.
这个方法是“完美”的(只要“圈子”尽可能大,不遗漏任何东西)。如果“圆圈”不是尽可能大(但没有遗漏任何东西),结果在逻辑上仍然是正确的,但它会使用比最小值更多的门。