求布尔表达式的简化乘积和。

Find the Simplified Sum of Products of a Boolean expression

提问人:Jake Pillandfall 提问时间:4/30/2011 最后编辑:Mr.WizardJake Pillandfall 更新时间:5/1/2011 访问量:16925

问:

只是简单的简化遇到了一些问题。我正在对具有 3 个输入 A、B 和 C 的多数解码器进行简化。如果 2 个或所有 3 个输入都假定为 1,则其输出 Y 假定为 1。否则,Y 假定为 0。选择正确的开关函数 Y=f(A,B,C)。

所以,在做了一个真值表之后,我发现乘积的规范总和

NOT(A).B.C + A.NOT(B).C + A.B.NOT(C) + A.B.C

简化一下,这显然归结为 Y = A * B + B * C + A * C

要简单地表达这样的表达,需要采取哪些步骤?它是如何完成的?在这种情况下,这个值是如何获得的?

数学 理论 逻辑 代数 真值表

评论


答:

5赞 highBandWidth 4/30/2011 #1

首先,请注意,对于布尔表达式:

A= A + A

现在,看到

NOT(A).B.C + A.NOT(B).C + A.B.NOT(C) + A.B.C
= NOT(A).B.C + A.NOT(B).C + A.B.NOT(C) + A.B.C + A.B.C + A.B.C
= (NOT(A)+A).B.C + A.(NOT(B)+B).C + A.B.(NOT(C)+C)
= B.C + A.C + A.B
2赞 pflodin 4/30/2011 #2

顺便说一句,WolframAlpha 非常适合执行(检查)布尔数学运算,在这种情况下,示例的格式为:

~A && B && C || A && ~B && C || A && B && ~C || A && B && C

此外,您的特定表达式实际上在此页面上作为示例,与给出的其他答案不同。

评论

0赞 dmc 5/1/2011
关于使用 WolframAlpha 的好建议!回想起来很明显,但我以前没有想到这一点。
1赞 Jon Cram 5/1/2011 #3

您将受益于了解一些基本的逻辑概念:

  • 德摩根定律解释了如何将 ANDED 术语转换为 ORed 术语(反之亦然)。这是一个非常强大的概念,值得学习,它允许将逻辑表达式转换为纯NAND或纯NOR形式,这是有充分理由的

  • Karnaugh 映射可用于直观地将逻辑表达式转换为其第一个规范形式。在许多现实生活中,使用卡诺地图是不切实际的,但这是一种非常好的学习技巧

为任何逻辑表达式找到第一个规范形式的一种直接方法是生成适当的真值表,然后检查导致输出为 1 的输入。

对于真值表中输出为 1 的每一行,您可以相对容易地仅为该行形成逻辑表达式。完整的逻辑表达式来自对每行的所有表达式的 ORing。这将是一个最小的表达式(可能还有其他表达式,没有一个是最小的)。

0赞 Toon Krijthe 5/1/2011 #4

另一种解释。

我们有 (1):

(not(A) and B and C ) or (A and not(B) and C) or (A and B and not C) or (A and B and C).

我们知道:

A = A or A.

因此,我们可以将 (1) 重写为 (2):

(not(A) and B and C ) or (A and B and C) or
(A and not(B) and C) or (A and B and C) or
(A and B and not C) or (A and B and C)

我们也知道:

(A and B) or (A and not B) = A and (B or not B) = A

因此,我们可以将 (2) 重写为 (3):

(B and C) or (A and C) or (A and B)

这个想法是找到可以(部分)消除的组以简化方程式。