歡迎來到布林代數的世界!

你有沒有想過電腦實際上是如何「思考」的呢?它既不使用語言,也沒有感情;它只運用邏輯。在最基礎的層面上,電腦執行的一切操作都是基於真 (True, 1)假 (False, 0)布林代數 (Boolean Algebra) 就是用來描述及簡化這些邏輯決策的數學分支。如果起初看起來像另一種語言,別擔心——看完這些筆記,你就能像專家一樣讀懂邏輯了!

1. 邏輯閘:我們的積木

邏輯閘 (Logic Gates) 想像成微小的電子開關。它們接收一個或多個輸入,並根據特定的規則產生單一輸出。在考試中,你需要知道如何繪製它們、它們的運作方式以及它們的真值表 (Truth Tables)

NOT 閘(「相反」閘)

NOT 閘是最簡單的一個。無論你給它什麼,它都會給你相反的結果。如果你說「真」,它就說「假」。
符號: \(\neg A\) 或 \(\bar{A}\)
類比: 一位有「反向心理」的朋友。如果你提議去吃披薩,他們會說不;如果你說不吃披薩,他們偏要吃!

AND 閘(「嚴格」閘)

AND 閘非常挑剔。只有當所有輸入皆為「真」時,它才會輸出
符號: \(A \wedge B\) 或 \(A \cdot B\)
類比: 一個需要兩把不同的鑰匙同時轉動才能打開的保險箱。

OR 閘(「寬鬆」閘)

OR 閘快樂多了。只要有至少一個輸入為「真」,它就會輸出
符號: \(A \vee B\) 或 \(A + B\)
類比: 一個門鈴系統,只要有人按前門按鈕後門按鈕,鈴聲就會響起。

XOR 閘(「互斥」閘)

XOR 代表「互斥或 (Exclusive OR)」。如果輸入不同,它就輸出。也就是說,如果你有 A 或 B,但不能兩者皆有,結果就是「真」。
符號: \(A \oplus B\) 或 \(A \underline{\vee} B\)
類比: 一項「買一送一」優惠,你可以選咖啡茶,但不能兩者都免費獲得!

快速回顧:
- NOT: 反轉位元。
- AND: 需要兩者皆為 1。
- OR: 至少需要一個為 1。
- XOR: 恰好需要一個為 1。

2. 真值表

真值表 (Truth Table) 是列出所有可能的輸入組合並顯示輸出結果的方法。它就像是邏輯電路的「小抄」。

小撇步: 若要找出表格需要多少行,請使用公式 \(2^n\),其中 \(n\) 是輸入的數量。所以,2 個輸入 = 4 行,3 個輸入 = 8 行。

範例:AND 的真值表(輸入 A, B)

A | B | 輸出
0 | 0 | 0
0 | 1 | 0
1 | 0 | 0
1 | 1 | 1

3. 布林標記與定律

就像在一般數學中有 \(2 + 2 = 4\) 一樣,布林代數也有規則來幫助我們簡化冗長混亂的表達式。簡化非常重要,因為這意味著我們可以用更少的邏輯閘來構建同一個電路,從而節省成本和電力!

需要記住的關鍵定律:

1. 等同律 (Identity Law): \(A \wedge 1 = A\)(任何東西與「真」進行 AND 運算,結果保持不變)。
2. 歸零律 (Null Law): \(A \wedge 0 = 0\)(任何東西與「假」進行 AND 運算,結果永遠為「假」)。
3. 冪等律 (Idempotent Law): \(A \vee A = A\)(A 或 A 仍然是 A... 說兩次也不會改變結果!)。
4. 互補律 (Inverse Law): \(A \wedge \neg A = 0\)(同一事物不能同時為「真」且為「假」)。

迪摩根定律 (De Morgan’s Laws)(「重頭戲」)

如果這些看起來很嚇人,別擔心!有一個簡單的記憶技巧:「拆開長槓,變換符號」。

- \(\neg(A \wedge B) = \neg A \vee \neg B\)
- \(\neg(A \vee B) = \neg A \wedge \neg B\)

技巧範例: 如果你上方有一條槓蓋住 \((A \text{ AND } B)\),你就把槓拆成兩截(一條蓋在 A 上,一條蓋在 B 上),並把 AND 變成 OR。

你知道嗎? 奧古斯都·德·摩根 (Augustus De Morgan) 是一位 19 世紀的數學家,他與愛達·勒芙蕾絲 (Ada Lovelace) 是朋友,後者通常被認為是第一位電腦程式設計師!

4. 卡諾圖 (Karnaugh Maps, K-Maps)

如果布林代數的定律讓你覺得太像「數學」了,那麼卡諾圖就是為你準備的!它們是一種簡化邏輯表達式的視覺化方法,看起來就像一格一格的 1 和 0。

如何使用卡諾圖:

1. 建立網格: 適用於 2、3 或 4 個變數。
2. 格雷碼規則 (Gray Code Rule): 這是最常見的錯誤!標記列時,每次只能改變一個位元。順序必須是:00, 01, 11, 10(不是 00, 01, 10, 11)。
3. 填入 1: 對於每個輸出為「真」的組合,在對應方格中填入 1。
4. 圈選 1: 將 1 圈起來。組必須是矩形或正方形,且數量必須是 2 的冪次方(1、2、4 或 8 個儲存格)。盡量讓圈選的組越大越好!
5. 讀取結果: 觀察一個組。哪個變數在該組內保持不變?該變數就是簡化答案的一部分。

關鍵要點: 卡諾圖將邏輯問題變成了「尋找規律」的遊戲。永遠記得尋找你能找到的最大的 1 之分組!

5. 邏輯閘圖表

在考試中,你可能會被要求根據類似 \(Z = (A \wedge B) \vee \neg C\) 的表達式畫出電路圖。

繪圖步驟:

1. 識別輸入: 在左側畫出 A、B 和 C 的線路。
2. 先處理括號內: 畫一個 AND 閘,將 A 和 B 連接到它。
3. 處理 NOT: 為 C 畫一個 NOT 閘。
4. 結合它們: 將 (A AND B) 的輸出和 (NOT C) 的輸出同時輸入到一個 OR 閘中。
5. 標記輸出: 將最後一條線標記為 Z。

避免常見錯誤: 不要讓線路在沒有點的情況下交叉!如果兩條線交叉且你想讓它們連接,請在交會處畫一個清晰的實心圓點。如果它們只是彼此經過,則不要畫圓點。

總結:為什麼我們要學這個?

電腦是由數十億個電晶體組成的。透過使用布林代數邏輯閘卡諾圖,電腦科學家可以設計出最有效的電力流動路徑。這讓你的手機運作更快、筆記型電腦不那麼發燙,程式執行得更順暢。你現在學的正是硬體的語言!

考試最後提示: 如果你在使用定律簡化表達式時卡住了,試著快速畫一個真值表或卡諾圖。它們應該總是能帶你找到相同的答案!