2017-06-12 272 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

偉大的方法和有用的解釋,沒有注意到它,我同意數學模式,他們是我很少能夠掌握的常數。謝謝! –