给定以下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,发现它可以得出这样一个总和表达式
答案 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之和。