【发布时间】:2016-12-05 10:45:52
【问题描述】:
我只是好奇如何确定简化的布尔表达式是 SOP 形式还是 POS 形式。 例如这个问题: Question
这个表达式的答案是:NOT B.D/⌝B.D 这是SOP形式 谁能解释一下为什么?
【问题讨论】:
标签: karnaugh-map
我只是好奇如何确定简化的布尔表达式是 SOP 形式还是 POS 形式。 例如这个问题: Question
这个表达式的答案是:NOT B.D/⌝B.D 这是SOP形式 谁能解释一下为什么?
【问题讨论】:
标签: karnaugh-map
我认为这应该是一个“哲学”论点。 ⌝B.D 是要求和的元素个数为 1 的特例。
您可以想到 ⌝B.D = ⌝B.D + ⌝B.B + ⌝D.D + 0.(anything),这使它成为 SOP。
【讨论】:
乘积之和 = DNF (析取范式) = 析取(+) 连词(·) ~ "析取不在里面任何括号,但只有 作为根运算符”.
和的乘积 = CNF(合取范式)=析取的合取〜“合取不在括号内,而只是 作为根运算符”.
完整/完整 CNF/DNF = 项(乘积/总和)包含所有给定变量,以直接或否定形式;然后这些术语是 maxterms/minterms。
可以看到,卡诺图中的四个圆圈对应原函数中的四个积,顺序相同(从上到下,从左到右)。
该函数现在采用乘积之和的形式,因为您可以从字面上看到,有四个乘积。
它也是maxterms之和的形式,因为这四个部分包含所有变量的直接或否定形式。
f(a,b,c,d) = ¬a·¬b·¬c·d + ¬a·¬b·c·d + a·¬b·c·d + a·¬b·¬c·d
例如第一项:¬a·¬b·¬c·d ~ 如果变量a、b 和c 是逻辑零并且只有d 为真,那么函数的输出是逻辑1。
您可以看到,maxterms 可以分组并创建乘积的最小总和:f(a,b,c,d) = ¬b·d,因为所有单元格,其中b 是逻辑0 和@987654338 @ 是一个逻辑 1 包括在内。
最小化的函数确实是一个 SOP/DNF,因为它确实只包含一个产品 — ¬b·d — 并且该产品内部没有 +(析取)运算符。
当您意识到,将函数循环并写为和的乘积时,您可能会感到惊讶,这会产生相同的最小形式:f(a,b,c,d) = (¬b)·(d),因为恰好有两个术语:¬b(橙色 circle em>)和d(红色圆圈)。
两者都是只有一个操作数的和。因此,最小化函数是 sum 的乘积。
最小化函数f(a,b,c,d) = ¬b·d 既是 SOP 又是 POS。您可以使用wolframalpha.com检查正确的解决方案。
【讨论】: