2011-04-30 61 views
2

只需简单简化一些问题。我正在为具有3个输入A,B和C的多数解码器进行简化。如果2或所有3个输入都假设为1,则其输出Y假定为1。选择正确的开关函数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

首先,注意,布尔表达式:

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

顺便说一句WolframAlpha做(检查)布尔数学是伟大的在这种情况下,格式为你的榜样是:

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

此外,您的具体表达式实际上是在012作为一个例子,的做法与给出的其他答案不同。

+0

关于使用WolframAlpha的不错建议!回想起来很明显,但我之前没有想到这一点。 – dmc 2011-04-30 19:39:44

0

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

  • De Morgan's Laws解释如何相与字词或运算方面(反之亦然)转换。这是一个非常强有力的概念值得学习,它允许一个逻辑表达式翻译成纯NAND或纯NOR形式为其中有很好的理由

  • Karnaugh map可用于在视觉上逻辑表达式翻译成他们第一典型形成。使用卡诺图在很多现实生活中的情况下,不切实际的,但一个真正伟大的学习技术

找到第一个规范的形式对任何逻辑表达式的一个简单方法是生成相应的真值表,然后检查输入,导致输出为1.

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

0

另一种解释。

我们有(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) 

的想法是找到基团可以是(部分地)消除以简化等式。