2017-06-12 275 views
-3

从一个减法器具有三个输入和两个输出我获得用于所述第二输出Z2以下布尔式(在该位的“贷款”向左)的真值表开始:简化布尔代数表达式

Z2 = x0'x1'x2 + x0'x1x2' + x0'x1x2 + x0x1x2

(其中X0'装置NOT X0)。

简化它:Z2 = X2(X0⊕X1) '+ X1(X0⊕×2)' + X1X2

这意味着:Z2 = X2(X0 XNOR X1)+ X1 (x0 XNOR x2)+ x1x2

我可以简化更多吗?我试过z2 =(x0 XNOR x1)+(x0 XNOR x2)+ x1x2但它并没有成功。

+0

请说明您的意思是“简化”。你是否希望尽可能少的操作或变量查找(将两个相同的变量作为两个事件处理)还是别的?允许哪些操作? –

+0

@RoryDaulton是的,我只是想知道是否有一些布尔代数的属性,我错过了减少表达式,减少它的操作。基本上,减少操作方面的版本,甚至计算相同的真值表:[链接](https://i.gyazo.com/782a67a0e5b7971ca8ef19dbb06349c3.png),希望我很清楚 –

+0

你回答了我的第一个问题(你想要最少的操作次数),但不是我的第二次。允许哪些操作?对于一元,补(不)?对于二进制,AND,OR,NAND,NOR,XOR,暗示任一方向,其他?任何三元操作符? –

回答

1

您的原始表达式有12个变量引用和16个运算符。您的简化包含8个变量引用和7个运算符。这里是6所变量引用和6个运算符的表达式:

Z2 = x0x1x2 + X0' (X1 + X2)

我不知道这是否是在任何意义上最小的。


你问我怎么找到这个表情。我没有从你的简化开始,我从你在评论中引用的真值表开始。我在这里重现:

Truth table for original expression

当我看着表寻找模式,我看到它看起来像一个视交叉或反对称矩阵:如果我翻转最后一列颠倒然后采取补所有项目的结果都是原始列。 (我不知道这种对称性的适当术语,这些是我脑海中想到的术语。)我试图将这种对称性封装在一个逻辑表达式中,但失败了。

这使我看到了最后一列的上半部分和下半部分。上半部分大部分是下半部分,下半部分大部分是零。然后它让我感到上半部分看起来像是二进制或运算的真值表,而下半部分看起来像是二进制AND运算。当然,上半部分用于x0',下半部分用于x0。把这些事实放在一起给了我我的表达。

我通过查看是否可以将原始表达式操纵到我的地方来确认表达式。我可以,做

z2 = x0'x1'x2 + x0'x1x2' + x0'x1x2 + x0x1x2 
    = x0'(x1'x2 + x1x2' + x1x2) + x0x1x2 
    = x0'(x1 + x2) + x0x1x2 
    = x0x1x2 + x0'(x1 + x2) 

从第二到第三行的过渡,当然,等同于承认二进制或真值表,所以这不是我的实际发现的方法非常不同。

后一种方法可能更容易转移到其他问题:从多个术语中排除一个共同因素。我的实际方法更有趣,但不易转让。我最喜欢的数学定义是“模式研究”,它解释了为什么这个方法很有趣。

+0

你能告诉我你是如何结束它的吗?尤其是如何取消XNOR操作,我无法摆脱它们。 –

+0

伟大的方法和有用的解释,没有注意到它,我同意数学模式,他们是我很少能够掌握的常数。谢谢! –