2

只是简单的简化有一些问题。我正在对具有 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

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

4

4 回答 4

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
于 2011-04-30T13:42:53.447 回答
2

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

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

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

于 2011-04-30T14:41:11.920 回答
0

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

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

  • 卡诺图可用于将逻辑表达式可视化地转换为它们的第一个规范形式。在许多现实生活案例中使用卡诺图是不切实际的,但却是一种非常棒的学习技术

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

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

于 2011-04-30T18:32:11.193 回答
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)

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

于 2011-04-30T18:46:45.443 回答