2015-05-19 127 views
-1

我試圖解決這個但我有很難: '是指互補 Y = A'B' + A'BC '+(A + C ')' 我嘗試: A' B'+ A'BC'+ A'C A'(B'+ BC'+ C) 現在這是我迷失的地方。不知何故,加括號的表達式評估爲1,但我不知道如何。 編輯:現在解決。布爾邏輯簡化

+0

我不認爲你應該問布爾邏輯在這裏。 – Mox

+0

我應該問哪裏? – theProdigyLebron

+0

不太確定,但這是我已經制定的。 A'B'+ A'BC'+(A + C')'= A'B'+ A'BC'+ A'C = A'(B'+ C + BC')= A'(B' + C + B)= A'(C + 1)= A' 你需要的規則是這個A + A'B = A + B – Mox

回答

0

我總是喜歡寫程序的這種東西,看是否邏輯推理會持幣觀望:

#include<stdio.h> 
int main (void) { 
    puts ("A B C"); 
    for (int a = 0; a < 2; a++) { 
     for (int b = 0; b < 2; b++) { 
      for (int c = 0; c < 2; c++) { 
       int x = !a && !b; 
       int y = !a && b && !c; 
       int z = !(a || !c); 
       printf ("%d %d %d -> %d %d %d -> %d\n", 
        a, b, c, x, y, z, x || y || z); 
      } 
     } 
    } 
    return 0; 
} 

的輸出是:

A B C 
0 0 0 -> 1 0 0 -> 1 
0 0 1 -> 1 0 1 -> 1 
0 1 0 -> 0 1 0 -> 1 
0 1 1 -> 0 0 1 -> 1 
1 0 0 -> 0 0 0 -> 0 
1 0 1 -> 0 0 0 -> 0 
1 1 0 -> 0 0 0 -> 0 
1 1 1 -> 0 0 0 -> 0 

,你可以告訴簡單的表達式只是A'。你也可以看到,爲什麼,由於中間部分顯示三個單獨的術語是OR - 一起得到最終結果。

  • A是真實的(最後四線),所有這三個方面都是假的,所以OR -ing那些提供虛假爲好。前兩項A'B'A'BC'是錯誤的,因爲它們都是AND,而其中的錯誤A'。最後一項有A+C',它總是如此(因爲真正的OR任何事情都是真的),這意味着否定它總是錯誤的。

  • 談到前四線,當AB都是假的,第一項A'B'是真實的,那麼其他兩個條款並不重要(真OR什麼OR什麼是真實的)。

  • 只留下第三和第四行。第三,AC都是錯誤的,並且C是正確的,這意味着中期術語A'BC'是正確的。

  • 第四線具有A假和C真所以A+C'提供虛假或假 - >假所以第三項(A+C')'爲真(B是無關緊要的)。


做它CompSci方式,你只需要一步通過它,應用規則:

 A'B' + A'BC' + (A+C')' 
= A'B' + A'BC' + A'C   # "De Morgan" final term  [note 1] 
= A'(B' + BC' + C)   # extract common A'   [note 2] 
= A'(B' + B  + C)   # (B and not C) or C -> B or C [note 3] 
= A'( T  + C)   # (not B or B) -> true   [note 4] 
= A'(  T  )   # true or anything -> true  [note 4] 
= A'       # X and true -> X    [note 4] 

注:

1 /德摩根法律只規定a'b' -> (a+b)'a'+b' -> (ab)'

2 /分配法ax+ay -> a(x+y)

3 /不知道這個法律是否有一個名字,但如果c是真的,整個表達式是真實的。如果c是錯誤的,那麼它可以歸結爲b and true或者只是b。這實際上是b+c

4 /這些不用說,雖然,因爲任何好的數學家應該告訴你,很少應該去沒有在正式的證明說:-)

+0

感謝您的詳細解答! – theProdigyLebron