最小值与最大值乘积之和

时间:2016-03-07 07:43:58

标签: boolean-logic boolean-expression digital-logic karnaugh-map

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

(i)这是一个SOP表达 (ii)它是POS表达 (iii)这是一个min-of-minterms表达式 (iv)它是maxterms表达式的产物

这个问题的模型答案是i),ii)和iv)

我的问题是为什么iii)不是答案之一?我绘制了K-map,发现它可以得出这样一个总和表达式

1 个答案:

答案 0 :(得分:2)

如果包含所有文字(给定函数的变量或它们的否定),则布尔表达式中的文字簇仅形成minterm或maxterm。

minterm是函数的所有文字的乘积,maxterm是函数的所有文字的总和。

在K-map中,minterm或maxterm仅标记一个单元格。在真值表中,maxterm或minterm只匹配一行。

以下真值表对应于给定的函数:

 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)

真值表(和你的K-map)中只有一个maxterm,唯一的最大值是将函数的输出确定为逻辑0.这是一个有效的maxterms产品表达式,即使只有一个。它也是与原始表达式相同的布尔表达式,因此它也是一个有效的maxterms产品表达式。

但是,这不是有效的minterms总和,因为没有:

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

原始表达式也是minterms的总和,它需要分别标记K-map中的每个 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)

正如您所看到的,即使这两个布尔表达式彼此等效,原始的(在等式的左侧)也不会写为minterms的表达式(在右侧)等式的一面)。

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

任何产品一个minterm,因此原始表达式可以是sum和产品之和的形式,但不是有效的加总最小项。

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

在图片中(使用latex创建)你可以看到表达式 - 它的最小DNF和最小CNF是相同的 - 以及相当于它的minterms之和。

K-maps with equivalent expressions.