最小项的总和与最大项的乘积

sum of minterm vs product of maxterm

给定以下 F(A,B,C) 的布尔表达式:F(A,B,C) = A' + B + C' 关于上述表达式,以下哪些说法 is/are 正确?

(i) 是一个SOP表达式 (ii) 它是一个 POS 表达式 (iii) 它是一个最小项求和表达式 (iv) 它是一个乘积表达式

此问题的标准答案是 i),ii) 和 iv)

我的问题是为什么 iii) 不是答案之一?我画了K图,发现可以推导出这样一个求和表达式

布尔表达式中的一组文字仅形成最小项或最大项,前提是其中包含所有文字(给定函数的变量或其否定)。

最小项是函数所有文字的乘积,最大项是函数所有文字的总和。

在 K-map 中,最小项或最大项仅标记出一个单元格。实际上 table 最大项或最小项只匹配一行。

下面的真相-table对应给定的函数:

 index | a | b | c || f(a,b,c) | term matching the row/K-map cell
-------|---|---|---||----------|----------------------------------
   0   | 0 | 0 | 0 ||     1    | minterm: m0 = (¬a⋅¬b⋅¬c)
   1   | 0 | 0 | 1 ||     1    | minterm: m1 = (¬a⋅¬b⋅c)
   2   | 0 | 1 | 0 ||     1    | minterm: m2 = (¬a⋅b⋅¬c)
   3   | 0 | 1 | 1 ||     1    | minterm: m3 = (¬a⋅b⋅c)
-------|---|---|---||----------|----------------------------------
   4   | 1 | 0 | 0 ||     1    | minterm: m4 = (a⋅¬b⋅¬c)
   5   | 1 | 0 | 1 ||     0    | MAXTERM: M5 = (¬a + b + ¬c)
   6   | 1 | 1 | 0 ||     1    | minterm: m6 = (a⋅b⋅¬c)
   7   | 1 | 1 | 1 ||     1    | minterm: m7 = (a⋅b⋅c)

事实 table(和您的 K 图)中只有一个最大项,并且唯一确定函数输出为逻辑 0 的最大项。它是一个有效的最大项乘积表达式,即使如果只有一个。它也是与原始表达式相同的布尔表达式,因此这也是一个有效的 product-of-maxterms 表达式。

然而,这不是有效的最小项之和,因为有none:

f(a,b,c) = ∏(5) = M5 = (¬a + b + ¬c)

为了使原始表达式也是最小项的总和,需要在您的 K- 中标记出每个 true/one 单元格像这样分别映射:

f(a,b,c) = ∑(0,1,2,3,4,6,7) = m0 + m1 + m2 + m3 + m4 + m6 + m7 =
         = (¬a⋅¬b⋅¬c)+(¬a⋅¬b⋅c)+(¬a⋅b⋅¬c)+(¬a⋅b⋅c)+(a⋅¬b⋅¬c)+(a⋅b⋅¬c)+(a⋅b⋅c)

可以看出,即使这两个布尔表达式等价,原来的那个(等式左边)也没有写成最小项求和表达式(等式右边)

(¬a+b+¬c) = (¬a⋅¬b⋅¬c)+(¬a⋅¬b⋅c)+(¬a⋅b⋅¬c)+(¬a⋅b⋅c)+(a⋅¬b⋅¬c)+(a⋅b⋅¬c)+(a⋅b⋅c)

任何乘积都不是小项,所以原始表达式可以是和的乘积和乘积之和,但不是有效的最小项之和。

f(a,b,c) = (¬a + b + ¬c) = (¬a) + (b) + (¬c)

在图片(使用乳胶创建)中,您可以看到表达式——它在最小 DNF 和最小 CNF 方面是相同的——以及与之等效的最小项之和。