本練習的目標與方法。每一題都走完同一條完整流程:
讀題:從真值表(或功能描述)確認哪些輸入組合輸出 1 (即最小項 minterm);
填圖:把 1 填進卡諾圖——注意行列都用 格雷碼順序(\(00,01,11,10\)),相鄰格只差一個位元;
圈群:把 1 圈成 \(2^k\) 大小的矩形 (\(1,2,4,8,\dots\) 格),越大越好、可重疊、可迴繞 (左右相接、上下相接、四角相接);
讀項:每個群裡「不變的變數」留下(1 留原變數、 0 留反相),「有變的變數」消去——\(2^k\) 格的群恰好消 \(k\) 個變數;
接電路:最簡 SOP(sum of products) \(=\) 反相器+AND 層+OR 層;最後代回真值表驗算。
記號慣例:變數依 \(A,B,C,D,E\) 由高位到低位, 最小項編號 \(m_i\) 的 \(i\) 就是把該列輸入讀成二進位 (例如 3 變數的 \(m_5\) 是 \(A{=}1,B{=}0,C{=}1\))。 邏輯閘一律用 2 輸入閘(配合 Logisim 與 NAND 板的習慣), 必要時註明多輸入閘的替代畫法。
一個警報系統有兩個感測器 \(A\)、\(B\)(1 \(=\) 觸發)。 只要至少一個感測器觸發,警報 \(f\) 就要響。 真值表如下,請用卡諾圖求出最簡布林式並畫出電路:
| \(A\) | \(B\) | \(f\) |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
第一步:填圖。最小項 \(= \{m_1, m_2, m_3\}\):
第二步:圈群(兩個 2 格群,重疊在 \(m_3\))。
右欄(\(m_1, m_3\)):框內 \(A\) 有 0 有 1(消去), \(B = 1\) 不變 \(\Rightarrow\) 項為 \(B\);
下列(\(m_2, m_3\)):\(B\) 有變(消去), \(A = 1\) 不變 \(\Rightarrow\) 項為 \(A\)。
第三步:最簡式。 \[\boxed{f = A \lor B}\]
第四步:電路(1 個 OR 閘)。
(o) at (0,0) ; (o.in 1) – ++(-0.5,0) node[left]\(A\); (o.in 2) – ++(-0.5,0) node[left]\(B\); (o.out) – ++(0.5,0) node[right]\(f\);
驗算:\(A{=}0,B{=}0 \Rightarrow 0\) ✓;其餘三列皆 1 ✓。
教學重點:重疊是合法的。\(m_3\) 同時被兩個群圈住—— 完全沒問題:OR 的世界裡「一格被算兩次」不改變結果 (等冪律 \(x \lor x = x\))。新手常犯的錯是把圖切成 「互不重疊的拼圖」,反而圈出比較小的群、留下多餘的變數。
第 2 題(2 變數):樓梯雙控開關——\(A \oplus B\)
樓梯上下各有一個開關 \(A\)、\(B\),扳動任一個開關都要讓燈的 狀態反轉;約定兩個開關同為 0 或同為 1 時燈滅。真值表:
| \(A\) | \(B\) | \(f\) |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
用卡諾圖化簡,並討論結果。
第一步:填圖。最小項 \(= \{m_1, m_2\}\):
第二步:圈群——圈不起來!兩個 1 在對角線上: \(m_1 (01)\) 與 \(m_2 (10)\) 差了兩個位元, 在卡諾圖上不相鄰(相鄰的定義是恰差一位)。 只能各自圈成 1 格的群,一個變數都消不掉。
第三步:最簡 SOP 就是原式。 \[\boxed{f = (\lnot A \land B) \lor (A \land \lnot B) = A \oplus B}\]
第四步:電路。用基本閘要 5 個(2 NOT + 2 AND + 1 OR); 若允許 XOR 閘則 1 個就好。
(a1) at (2.6,1.9) ; (na) at (a1.in 1) ; (a2) at (2.6,-0.1) ; (nb) at (a2.in 2) ; (o) at (5.0,0.9) ; (na.in 1) – ++(-0.4,0) node[left]\(A\); (a1.in 2) – ++(-2.4,0) node[left]\(B\); (a2.in 1) – ++(-2.4,0) node[left]\(A\); (nb.in 1) – ++(-0.4,0) node[left]\(B\); (a1.out) – ++(0.25,0) |- (o.in 1); (a2.out) – ++(0.25,0) |- (o.in 2); (o.out) – ++(0.4,0) node[right]\(f\);
(x) at (0,0) ; (x.in 1) – ++(-0.5,0) node[left]\(A\); (x.in 2) – ++(-0.5,0) node[left]\(B\); (x.out) – ++(0.4,0) node[right]\(f\);
驗算:\(01 \to 1\) ✓、\(10 \to 1\) ✓、\(00,11 \to 0\) ✓。
教學重點:卡諾圖的極限。K-map 只會合併 「漢明距離 1」的格子;XOR 的 1 恰好兩兩距離 2(對角、棋盤), 所以永遠化簡不動。看到對角 1 就要想到 XOR/XNOR—— 這在第 8 題(三變數同位)會再放大一次。
第 3 題(3 變數):偶數偵測器——一個群消兩個變數
輸入 \(A,B,C\) 是一個 3 位元二進位數(\(A\) 為最高位)。 當這個數是偶數時 \(f = 1\)。真值表:
| \(A\) | \(B\) | \(C\) | \(f\) |
|---|---|---|---|
| 0 | 0 | 0 | 1 |
| 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 0 |
第一步:填圖。最小項 \(= \{m_0, m_2, m_4, m_6\}\):
第二步:圈群(一個 4 格群,左右迴繞)。 四個 1 落在 \(BC = 00\) 與 \(BC = 10\) 兩個端欄—— 格雷碼下這兩欄左右相接,合成一個 \(2 \times 2\) 的群。 框內 \(A\) 有變(消去)、\(B\) 有變(消去), 只有 \(C = 0\) 不變。
第三步:最簡式。\(4 = 2^2\) 格的群消掉 2 個變數, 三個變數只剩一個: \[\boxed{f = \lnot C}\] (道理也很直觀:偶數 \(\iff\) 最低位 \(C = 0\),與高位無關。)
第四步:電路(1 個 NOT 閘)。
(n) at (0,0) ; (n.in 1) – ++(-0.5,0) node[left]\(C\); (n.out) – ++(0.5,0) node[right]\(f\);
驗算:所有 \(C=0\) 的列輸出 1、\(C=1\) 的列輸出 0 ✓ (\(A\)、\(B\) 腳位留空不接)。
教學重點:群的大小=化簡的力量。 \(2^k\) 格的群恰好消 \(k\) 個變數: 2 格消 1 個、4 格消 2 個、8 格消 3 個。 所以圈群永遠先試最大的——這題若圈成四個 1 格群, 會得到冗長的原始 SOP;圈成兩個 2 格群,得到 \(\lnot B \lnot C \lor B \lnot C\)(還要再代數化簡); 一次圈 4 格才直接得到 \(\lnot C\)。 也別忘了迴繞:格雷碼讓最左欄與最右欄相鄰。
第 4 題(3 變數):三人多數決——三個重疊的對子
委員會三人 \(A,B,C\) 投票(1 \(=\) 贊成), 過半數贊成時議案通過(\(f = 1\))。真值表:
| \(A\) | \(B\) | \(C\) | \(f\) |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 |
第一步:填圖。最小項 \(= \{m_3, m_5, m_6, m_7\}\):
第二步:圈群(三個 2 格群,全部疊在 \(m_7\) 上)。
\(\{m_3, m_7\}\)(\(BC{=}11\) 整欄):\(A\) 消去 \(\Rightarrow B \land C\);
\(\{m_5, m_7\}\)(下列中間兩格):\(B\) 消去 \(\Rightarrow A \land C\);
\(\{m_6, m_7\}\)(下列右端兩格):\(C\) 消去 \(\Rightarrow A \land B\)。
沒有 4 格群可圈(四個 1 不構成矩形), 且三個對子缺一不可:\(m_3\) 只有第一群蓋、 \(m_5\) 只有第二群、\(m_6\) 只有第三群——三者都是 必要質蘊涵項(essential prime implicant)。
第三步:最簡式。 \[\boxed{f = (A \land B) \lor (A \land C) \lor (B \land C)}\]
第四步:電路(3 AND \(+\) 2 OR \(= 5\) 個 2 輸入閘)。
(a1) at (0,2.4) ; (a2) at (0,0.9) ; (a3) at (0,-0.6) ; (o1) at (2.6,1.65) ; (o2) at (5.0,0.5) ; (a1.in 1) – ++(-0.6,0) node[left]\(A\); (a1.in 2) – ++(-0.6,0) node[left]\(B\); (a2.in 1) – ++(-0.6,0) node[left]\(A\); (a2.in 2) – ++(-0.6,0) node[left]\(C\); (a3.in 1) – ++(-0.6,0) node[left]\(B\); (a3.in 2) – ++(-0.6,0) node[left]\(C\); (a1.out) – ++(0.25,0) |- (o1.in 1); (a2.out) – ++(0.25,0) |- (o1.in 2); (o1.out) – ++(0.25,0) |- (o2.in 1); (a3.out) – ++(0.5,0) |- (o2.in 2); (o2.out) – ++(0.4,0) node[right]\(f\);
驗算:恰一票(\(m_1,m_2,m_4\)):三個 AND 都是 0 \(\Rightarrow f{=}0\) ✓;兩票(如 \(m_6\):\(AB{=}1\)) \(\Rightarrow f{=}1\) ✓;三票全 1 ✓。
教學重點:多數決是「重疊」的經典。\(m_7\)(全贊成) 被三個群共用,讓每個群都能湊成一對、各消一個變數。 這個函數也是全加器(full adder)的進位輸出 \(C_{out} = AB \lor AC \lor BC\)——第 2 週會再遇到它。
第 5 題(3 變數):兩個必要群自動蓋滿全圖
求下列真值表的最簡布林式與電路:
| \(A\) | \(B\) | \(C\) | \(f\) |
|---|---|---|---|
| 0 | 0 | 0 | 1 |
| 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 |
第一步:填圖。最小項 \(= \{m_0, m_4, m_5, m_7\}\):
第二步:圈群——從「最挑剔」的 1 下手。
\(m_0\,(000)\) 的相鄰格中只有 \(m_4\) 是 1 \(\Rightarrow\) 唯一的選擇是 \(\{m_0, m_4\}\)(\(BC{=}00\) 整欄): \(A\) 消去 \(\Rightarrow \lnot B \land \lnot C\)(必要);
\(m_7\,(111)\) 的相鄰格中只有 \(m_5\) 是 1 \(\Rightarrow\) 唯一的選擇是 \(\{m_5, m_7\}\):\(B\) 消去 \(\Rightarrow A \land C\)(必要)。
兩個必要群已把 \(m_4\)、\(m_5\) 一併蓋住——全圖覆蓋完成, 不需要第三個群(例如 \(\{m_4,m_5\} = A\lnot B\) 是質蘊涵項, 但多餘)。
第三步:最簡式。 \[\boxed{f = (\lnot B \land \lnot C) \lor (A \land C)}\]
第四步:電路(2 NOT \(+\) 2 AND \(+\) 1 OR \(= 5\) 閘)。
(nb) at (0,2.9) ; (nc) at (0,1.1) ; (a1) at (2.9,2.0) ; (a2) at (2.9,-0.7) ; (o) at (5.3,0.65) ; (nb.in 1) – ++(-0.4,0) node[left]\(B\); (nc.in 1) – ++(-0.4,0) node[left]\(C\); (nb.out) – ++(0.3,0) |- (a1.in 1); (nc.out) – ++(0.3,0) |- (a1.in 2); (a2.in 1) – ++(-3.6,0) node[left]\(A\); (a2.in 2) – ++(-3.6,0) node[left]\(C\); (a1.out) – ++(0.25,0) |- (o.in 1); (a2.out) – ++(0.25,0) |- (o.in 2); (o.out) – ++(0.4,0) node[right]\(f\);
驗算:\(m_0\):\(\lnot B \lnot C = 1\) ✓; \(m_5\,(101)\):\(AC = 1\) ✓; \(m_6\,(110)\):兩項皆 0 \(\Rightarrow\) 0 ✓; \(m_4\,(100)\):\(\lnot B\lnot C = 1\) ✓。
教學重點:先找「只有一種圈法」的 1。 系統化流程是:對每個 1 問「它能參加哪些最大群?」—— 只有一個候選的,就是必要群,先圈; 圈完常常發現其他 1 已被順便蓋住,剩下的再挑最少的群補滿。 這避免「看哪順眼圈哪」導致多圈或漏圈。
第 6 題(3 變數):三個對子缺一不可
求下列真值表的最簡布林式與電路:
| \(A\) | \(B\) | \(C\) | \(f\) |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 |
| 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 |
第一步:填圖。最小項 \(= \{m_1, m_2, m_3, m_7\}\):
第二步:圈群。沒有 4 格矩形;逐一檢查每個 1 的歸宿:
\(m_1\) 只能和 \(m_3\) 成對(上列中間):\(B\) 消去 \(\Rightarrow \lnot A \land C\)(必要);
\(m_2\) 只能和 \(m_3\) 成對(上列右端):\(C\) 消去 \(\Rightarrow \lnot A \land B\)(必要);
\(m_7\) 只能和 \(m_3\) 成對(\(BC{=}11\) 整欄):\(A\) 消去 \(\Rightarrow B \land C\)(必要)。
\(m_3\) 被三個群共用(它是全圖「樞紐」),三個對子缺一不可。
第三步:最簡式。 \[\boxed{f = (\lnot A \land C) \lor (\lnot A \land B) \lor (B \land C)}\]
第四步:電路——共用一個反相器! \(\lnot A\) 出現在兩個乘積項裡,接線時只要一顆 NOT: 共 1 NOT \(+\) 3 AND \(+\) 2 OR \(= 6\) 閘。
(na) at (-0.5,3.6) ; (a1) at (2.2,2.6) ; (a2) at (2.2,1.1) ; (a3) at (2.2,-0.4) ; (o1) at (4.6,1.85) ; (o2) at (7.0,0.7) ; (na.in 1) – ++(-0.4,0) node[left]\(A\); (na.out) – ++(0.3,0) node[circle,fill,inner sep=1pt] (j) |- (a1.in 1); (j.center) |- (a2.in 1); (a1.in 2) – ++(-3.5,0) node[left]\(C\); (a2.in 2) – ++(-3.5,0) node[left]\(B\); (a3.in 1) – ++(-3.5,0) node[left]\(B\); (a3.in 2) – ++(-3.5,0) node[left]\(C\); (a1.out) – ++(0.25,0) |- (o1.in 1); (a2.out) – ++(0.25,0) |- (o1.in 2); (o1.out) – ++(0.25,0) |- (o2.in 1); (a3.out) – ++(0.5,0) |- (o2.in 2); (o2.out) – ++(0.4,0) node[right]\(f\);
驗算:\(m_5\,(101)\):\(\lnot A C = 0\)、\(\lnot A B = 0\)、 \(BC = 0\) \(\Rightarrow\) 0 ✓;\(m_3\,(011)\):三項全 1 \(\Rightarrow\) 1 ✓; \(m_7\,(111)\):\(BC = 1\) ✓。
教學重點:最簡式 \(\ne\) 最少接線。 K-map 給的是乘積項最少、每項字面值最少的 SOP; 真正接電路時還能再省——共用反相器、共用子項都是常規操作 (本題 \(\lnot A\) 分給兩個 AND 用)。 也可以再做代數提取:\(f = \lnot A(B \lor C) \lor BC\), 變成 1 NOT \(+\) 2 AND \(+\) 2 OR \(= 5\) 閘—— 化簡到 SOP 之後仍值得多看一眼。
第 7 題(3 變數):循環卡諾圖——最簡解不唯一
求下列真值表所有的最簡布林式:
| \(A\) | \(B\) | \(C\) | \(f\) |
|---|---|---|---|
| 0 | 0 | 0 | 1 |
| 0 | 0 | 1 | 1 |
| 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 0 | 0 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 |
第一步:填圖。最小項 \(= \{m_0, m_1, m_2, m_5, m_6, m_7\}\) (0 反而只有兩個:\(m_3\)、\(m_4\)):
| 解 1:\(\lnot A\lnot B \lor AC \lor B\lnot C\) | 解 2:\(\lnot A\lnot C \lor \lnot B C \lor AB\) |
第二步:圈群——發現「循環」。六個 1 圍成一圈, 每個 1 恰好有兩個相鄰的 1, 六個質蘊涵項(都是對子)首尾相扣: \[\lnot A \lnot B,\;\; \lnot B C,\;\; A C,\;\; A B,\;\; B \lnot C,\;\; \lnot A \lnot C.\] 沒有任何一個是必要的(每個 1 都有兩個群可選)! 蓋滿六個 1 至少要 3 個對子,且必須「隔一個取一個」—— 恰有兩種取法:
解 1:\(\{m_0,m_1\}, \{m_5,m_7\}, \{m_2,m_6\}\) \(\Rightarrow f = \lnot A\lnot B \lor AC \lor B\lnot C\);
解 2:\(\{m_0,m_2\}, \{m_1,m_5\}, \{m_6,m_7\}\) \(\Rightarrow f = \lnot A\lnot C \lor \lnot BC \lor AB\)。
\[\boxed{f = \lnot A\lnot B \lor AC \lor B\lnot C \;=\; \lnot A\lnot C \lor \lnot BC \lor AB \quad(\text{兩解同樣最簡})}\]
第四步:電路(取解 1;3 NOT \(+\) 3 AND \(+\) 2 OR)。
(na) at (0,4.6) ; (nb) at (0,2.8) ; (a1) at (3.0,3.7) ; (a2) at (3.0,1.5) ; (a3) at (3.0,-0.2) ; (nc) at (a3.in 2) ; (o1) at (5.4,2.6) ; (o2) at (7.6,1.2) ; (na.in 1) – ++(-0.4,0) node[left]\(A\); (nb.in 1) – ++(-0.4,0) node[left]\(B\); (na.out) – ++(0.3,0) |- (a1.in 1); (nb.out) – ++(0.3,0) |- (a1.in 2); (a2.in 1) – ++(-3.7,0) node[left]\(A\); (a2.in 2) – ++(-3.7,0) node[left]\(C\); (a3.in 1) – ++(-3.7,0) node[left]\(B\); (nc.in 1) – ++(-0.4,0) node[left]\(C\); (a1.out) – ++(0.25,0) |- (o1.in 1); (a2.out) – ++(0.25,0) |- (o1.in 2); (o1.out) – ++(0.25,0) |- (o2.in 1); (a3.out) – ++(0.5,0) |- (o2.in 2); (o2.out) – ++(0.4,0) node[right]\(f\);
驗算(抽 \(m_3, m_4\) 兩個 0): \(m_3\,(011)\):\(\lnot A\lnot B{=}0\)、\(AC{=}0\)、\(B\lnot C{=}0\) \(\Rightarrow 0\) ✓;\(m_4\,(100)\):三項皆 0 ✓。 再抽 \(m_0\):\(\lnot A\lnot B = 1\) ✓。
教學重點:「最簡」可以不只一個。 循環圖(cyclic K-map)裡沒有必要質蘊涵項, 兩組互補的圈法一樣好——考試時任一組都是滿分。 但務必完整寫出一組就好,混搭兩組會多圈出第 4 個群。 順帶一提:0 很少時,改圈 0(求 \(\lnot f\) 再取反,得 POS 形式) 往往更快:\(\lnot f = \lnot A B C \lor A\lnot B\lnot C\)。
第 8 題(3 變數):奇同位產生器——棋盤格
通訊時要替 3 位元資料 \(A,B,C\) 產生同位位元: 當資料中 1 的個數是奇數時 \(f = 1\)。真值表:
| \(A\) | \(B\) | \(C\) | \(f\) |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 |
| 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 |
第一步:填圖。最小項 \(= \{m_1, m_2, m_4, m_7\}\):
第二步:圈群——棋盤格,全部孤立。 每個 1 的上下左右(含迴繞)全是 0: 任何兩個 1 之間漢明距離都是 2。 K-map 一格都合併不了,最簡 SOP 就是四個最小項: \[f = \lnot A\lnot B C \lor \lnot A B\lnot C \lor A\lnot B\lnot C \lor ABC\]
第三步:換個代數角度。把前兩項與後兩項分組提取: \[f = \lnot A(B \oplus C) \lor A\,\lnot(B \oplus C) = A \oplus B \oplus C.\] \[\boxed{f = A \oplus B \oplus C \quad(\text{奇同位})}\]
第四步:電路。SOP 直譯要 3 NOT \(+\) 8 AND(3 輸入項拆成 2 輸入)\(+\) 3 OR \(\approx 14\) 閘;用 XOR 只要 2 個閘:
(x1) at (0,0.3) ; (x2) at (2.4,0) ; (x1.in 1) – ++(-0.5,0) node[left]\(A\); (x1.in 2) – ++(-0.5,0) node[left]\(B\); (x1.out) – ++(0.2,0) |- (x2.in 1); (x2.in 2) – ++(-3.1,0) node[left]\(C\); (x2.out) – ++(0.4,0) node[right]\(f\);
驗算:\(m_7\,(111)\):\(1\oplus1\oplus1 = 1\) ✓(三個 1 是奇數); \(m_3\,(011)\):\(0\oplus1\oplus1 = 0\) ✓。
教學重點:認得棋盤格。 K-map 上 1 與 0 呈國際象棋棋盤分布 \(\Rightarrow\) 函數是 XOR(同位)家族,直接寫 \(\oplus\) 串接,別硬用 SOP 接一大坨閘。 這也解釋了為什麼加法器的和位元 \(S = A \oplus B \oplus C_{in}\) 天生就用 XOR 蓋—— 它就是奇同位。(對比:第 4 題的進位 \(C_{out}\) 是多數決。)
第 9 題(4 變數):四角迴繞——\(\lnot B \land \lnot D\)
求下列真值表(\(A\) 為最高位)的最簡布林式與電路:
| \(A\) | \(B\) | \(C\) | \(D\) | \(f\) |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 |
| 0 | 0 | 0 | 1 | 0 |
| 0 | 0 | 1 | 0 | 1 |
| 0 | 0 | 1 | 1 | 0 |
| 0 | 1 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 0 |
| 0 | 1 | 1 | 0 | 0 |
| 0 | 1 | 1 | 1 | 0 |
| \(A\) | \(B\) | \(C\) | \(D\) | \(f\) |
|---|---|---|---|---|
| 1 | 0 | 0 | 0 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 0 | 1 | 0 | 1 |
| 1 | 0 | 1 | 1 | 0 |
| 1 | 1 | 0 | 0 | 0 |
| 1 | 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 | 0 |
第一步:填圖。最小項 \(= \{m_0, m_2, m_8, m_{10}\}\)—— 恰好是卡諾圖的四個角落:
第二步:圈群(一個 4 格群)。格雷碼讓 最左欄 \(\leftrightarrow\) 最右欄、最上列 \(\leftrightarrow\) 最下列 都相鄰,所以四個角其實是一個 \(2\times2\) 方塊。 框內 \(A\)、\(C\) 都有變(消去),\(B = 0\)、\(D = 0\) 不變。
第三步:最簡式。4 格消 2 個變數: \[\boxed{f = \lnot B \land \lnot D}\]
第四步:電路(2 NOT \(+\) 1 AND \(= 3\) 閘; 或 1 個 NOR 閘:\(\lnot B \land \lnot D = \lnot(B \lor D)\))。
(nb) at (0,0.8) ; (nd) at (0,-0.8) ; (a) at (2.5,0) ; (nb.in 1) – ++(-0.4,0) node[left]\(B\); (nd.in 1) – ++(-0.4,0) node[left]\(D\); (nb.out) – ++(0.3,0) |- (a.in 1); (nd.out) – ++(0.3,0) |- (a.in 2); (a.out) – ++(0.4,0) node[right]\(f\);
(n) at (0,0) ; (n.in 1) – ++(-0.5,0) node[left]\(B\); (n.in 2) – ++(-0.5,0) node[left]\(D\); (n.out) – ++(0.4,0) node[right]\(f\);
驗算:\(m_0\,(0000)\)、\(m_{10}\,(1010)\):\(B{=}0,D{=}0 \Rightarrow 1\) ✓;\(m_5\,(0101)\):\(B{=}1 \Rightarrow 0\) ✓。
教學重點:卡諾圖其實是「甜甜圈」。 平面只是畫法;拓撲上左右緣相接、上下緣相接(環面)。 「四個角合成一群」是最容易漏看的迴繞—— 看到角落有 1,先檢查其他三個角。 另外注意 De Morgan:\(\lnot B \land \lnot D = \lnot(B \lor D)\), 一顆 NOR 就解決,比 3 顆閘更省。
第 10 題(4 變數):中央方塊——\(B \land D\)
求下列真值表的最簡布林式與電路:
| \(A\) | \(B\) | \(C\) | \(D\) | \(f\) |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 1 | 0 |
| 0 | 0 | 1 | 0 | 0 |
| 0 | 0 | 1 | 1 | 0 |
| 0 | 1 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 0 | 1 | 1 | 0 | 0 |
| 0 | 1 | 1 | 1 | 1 |
| \(A\) | \(B\) | \(C\) | \(D\) | \(f\) |
|---|---|---|---|---|
| 1 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 0 | 1 | 0 | 0 |
| 1 | 0 | 1 | 1 | 0 |
| 1 | 1 | 0 | 0 | 0 |
| 1 | 1 | 0 | 1 | 1 |
| 1 | 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 | 1 |
第一步:填圖。最小項 \(= \{m_5, m_7, m_{13}, m_{15}\}\)—— 圖的正中央 \(2\times2\):
第二步:圈群。一個 4 格方塊: 列(\(AB \in \{01,11\}\))裡 \(A\) 有變、\(B=1\) 不變; 欄(\(CD \in \{01,11\}\))裡 \(C\) 有變、\(D=1\) 不變。
第三步:最簡式。 \[\boxed{f = B \land D}\]
第四步:電路(1 個 AND 閘)。
(a) at (0,0) ; (a.in 1) – ++(-0.5,0) node[left]\(B\); (a.in 2) – ++(-0.5,0) node[left]\(D\); (a.out) – ++(0.4,0) node[right]\(f\);
驗算:16 列中恰好 \(B{=}1\) 且 \(D{=}1\) 的四列 (\(m_5,m_7,m_{13},m_{15}\))輸出 1 ✓,其餘 0 ✓。
教學重點:位置決定「長相」。 同樣是 4 格群,第 9 題散在四角、本題聚在中央, 本質相同:都是「兩個變數固定、兩個變數自由」。 訣竅是別數格子的位置,而是讀出框內 哪些變數從頭到尾沒變。
第 11 題(4 變數):8 格大群+補一對——\(\lnot B \lor (A \land C \land D)\)
求下列真值表的最簡布林式與電路:
| \(A\) | \(B\) | \(C\) | \(D\) | \(f\) |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 |
| 0 | 0 | 0 | 1 | 1 |
| 0 | 0 | 1 | 0 | 1 |
| 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 0 |
| 0 | 1 | 1 | 0 | 0 |
| 0 | 1 | 1 | 1 | 0 |
| \(A\) | \(B\) | \(C\) | \(D\) | \(f\) |
|---|---|---|---|---|
| 1 | 0 | 0 | 0 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 0 | 1 | 0 | 1 |
| 1 | 0 | 1 | 1 | 1 |
| 1 | 1 | 0 | 0 | 0 |
| 1 | 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 | 1 |
第一步:填圖。最小項 \(= \{m_0,\dots,m_3, m_8,\dots,m_{11}\} \cup \{m_{15}\}\):
第二步:圈群。
8 格群(上下列迴繞):\(AB{=}00\) 整列與 \(AB{=}10\) 整列相接;框內 \(A,C,D\) 都有變,只剩 \(B=0\) \(\Rightarrow \lnot B\)——\(2^3\) 格一口氣消 3 個變數;
孤 1 補對:\(m_{15}\,(1111)\) 不在大群裡, 它相鄰的 1 只有 \(m_{11}\,(1011)\),成對後 \(B\) 消去 \(\Rightarrow A \land C \land D\)(必要)。
第三步:最簡式。 \[\boxed{f = \lnot B \lor (A \land C \land D)}\]
第四步:電路(1 NOT \(+\) 2 AND \(+\) 1 OR \(= 4\) 閘)。
(a1) at (0,-0.2) ; (a2) at (2.6,-1.4) ; (nb) at (2.6,1.3) ; (o) at (5.0,-0.1) ; (a1.in 1) – ++(-0.5,0) node[left]\(A\); (a1.in 2) – ++(-0.5,0) node[left]\(C\); (a1.out) – ++(0.25,0) |- (a2.in 1); (a2.in 2) – ++(-3.1,0) node[left]\(D\); (nb.in 1) – ++(-3.1,0) node[left]\(B\); (nb.out) – ++(0.3,0) |- (o.in 1); (a2.out) – ++(0.3,0) |- (o.in 2); (o.out) – ++(0.4,0) node[right]\(f\);
驗算:\(m_9\,(1001)\):\(\lnot B = 1\) ✓; \(m_{15}\):\(ACD = 1\) ✓;\(m_{13}\,(1101)\):\(B{=}1\) 且 \(C{=}0\) \(\Rightarrow\) 兩項皆 0 ✓。
教學重點:大群優先,再救孤兒。 先圈到最大的 \(\lnot B\)(8 格),剩下的 \(m_{15}\) 再找最大的可用群收編——注意收編時可以 「借用」已圈過的格子(\(m_{11}\) 被圈第二次), 群才能大、變數才消得多。若怕重疊而讓 \(m_{15}\) 自成 1 格群, 就會得到囉嗦的 \(ABCD\) 四字面值項。
第 12 題(4 變數):4 格群+上下迴繞對——提取公因式
求下列真值表的最簡布林式與電路:
| \(A\) | \(B\) | \(C\) | \(D\) | \(f\) |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 1 | 1 |
| 0 | 0 | 1 | 0 | 0 |
| 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 0 | 1 | 1 | 0 | 0 |
| 0 | 1 | 1 | 1 | 1 |
| \(A\) | \(B\) | \(C\) | \(D\) | \(f\) |
|---|---|---|---|---|
| 1 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 0 | 1 | 0 | 0 |
| 1 | 0 | 1 | 1 | 0 |
| 1 | 1 | 0 | 0 | 0 |
| 1 | 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 | 0 |
第一步:填圖。最小項 \(= \{m_1, m_3, m_5, m_7, m_9\}\):
第二步:圈群。
4 格群 \(\{m_1,m_3,m_5,m_7\}\)(左上 \(2\times2\)): \(B,C\) 消去 \(\Rightarrow \lnot A \land D\)(\(m_5,m_7\) 只有它蓋, 必要);
迴繞對 \(\{m_1, m_9\}\)(\(CD{=}01\) 欄的頭尾兩格, 上下相接):\(A\) 消去 \(\Rightarrow \lnot B \land \lnot C \land D\) (\(m_9\) 的唯一夥伴是 \(m_1\),必要)。
第三步:最簡式。 \[\boxed{f = (\lnot A \land D) \lor (\lnot B \land \lnot C \land D)}\]
第四步:電路。兩項都含 \(D\),提取後 \(f = D \land \bigl(\lnot A \lor (\lnot B \land \lnot C)\bigr)\): 3 NOT \(+\) 2 AND \(+\) 1 OR \(= 6\) 閘。
(nb) at (0,2.7) ; (nc) at (0,0.9) ; (a1) at (2.8,1.8) ; (na) at (2.8,-0.9) ; (o) at (5.0,0.8) ; (a2) at (7.4,0.35) ; (nb.in 1) – ++(-0.4,0) node[left]\(B\); (nc.in 1) – ++(-0.4,0) node[left]\(C\); (na.in 1) – ++(-2.9,0) node[left]\(A\); (nb.out) – ++(0.3,0) |- (a1.in 1); (nc.out) – ++(0.3,0) |- (a1.in 2); (a1.out) – ++(0.25,0) |- (o.in 1); (na.out) – ++(0.25,0) |- (o.in 2); (o.out) – ++(0.2,0) |- (a2.in 1); (a2.in 2) – ++(-8.1,0) node[left]\(D\); (a2.out) – ++(0.4,0) node[right]\(f\);
驗算:\(m_9\,(1001)\):\(D{=}1\)、\(\lnot B\lnot C = 1\) \(\Rightarrow 1\) ✓;\(m_{11}\,(1011)\):\(\lnot A = 0\)、 \(\lnot C = 0\) \(\Rightarrow 0\) ✓;\(m_7\,(0111)\):\(\lnot A D = 1\) ✓。
教學重點:迴繞不只在左右。 \(m_1\,(0001)\) 在最上列、\(m_9\,(1001)\) 在最下列, 同一欄頭尾相接成合法的對子(兩者只差 \(A\) 位元)。 另外,K-map 之後再做代數提取(此處提出公因式 \(D\)) 常能進一步省閘——K-map 保證 SOP 最簡, 但「兩層 AND–OR」不一定是閘數最少的形狀。
第 13 題(4 變數):兩個 4 格群——\((\lnot A \lor \lnot B) \land C\)
求下列真值表的最簡布林式與電路:
| \(A\) | \(B\) | \(C\) | \(D\) | \(f\) |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 1 | 0 |
| 0 | 0 | 1 | 0 | 1 |
| 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 0 |
| 0 | 1 | 1 | 0 | 1 |
| 0 | 1 | 1 | 1 | 1 |
| \(A\) | \(B\) | \(C\) | \(D\) | \(f\) |
|---|---|---|---|---|
| 1 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 0 | 1 | 0 | 1 |
| 1 | 0 | 1 | 1 | 1 |
| 1 | 1 | 0 | 0 | 0 |
| 1 | 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 | 0 |
第一步:填圖。最小項 \(= \{m_2, m_3, m_6, m_7, m_{10}, m_{11}\}\):
第二步:圈群(兩個 4 格群,共用 \(m_2, m_3\))。
上方 \(2\times2\)(\(AB\in\{00,01\}\)、\(CD\in\{11,10\}\)): \(B,D\) 消去 \(\Rightarrow \lnot A \land C\) (\(m_6,m_7\) 只有它蓋,必要);
上下迴繞 \(2\times2\)(\(AB\in\{00,10\}\)、\(CD\in\{11,10\}\)): \(A,D\) 消去 \(\Rightarrow \lnot B \land C\) (\(m_{10},m_{11}\) 只有它蓋,必要)。
六個 1 無法圈成 8 格群(不成矩形),兩群即最簡。
第三步:最簡式。 \[\boxed{f = (\lnot A \land C) \lor (\lnot B \land C) = C \land \lnot(A \land B)}\]
第四步:電路。SOP 直譯要 5 閘; 提取 \(C\) 後 \(f = C \land \lnot(A \land B)\), 用 1 NAND \(+\) 1 AND \(= 2\) 閘:
(nd) at (0,0.55) ; (a) at (2.5,0.25) ; (nd.in 1) – ++(-0.5,0) node[left]\(A\); (nd.in 2) – ++(-0.5,0) node[left]\(B\); (nd.out) – ++(0.2,0) |- (a.in 1); (a.in 2) – ++(-3.2,0) node[left]\(C\); (a.out) – ++(0.4,0) node[right]\(f\);
驗算:\(f = 1\) 需要 \(C{=}1\) 且「\(A,B\) 不同時為 1」: \(m_{14}\,(1110)\):\(AB{=}11 \Rightarrow 0\) ✓; \(m_{10}\,(1010)\):\(C{=}1\)、\(AB{\ne}11 \Rightarrow 1\) ✓; \(m_1\,(0001)\):\(C{=}0 \Rightarrow 0\) ✓。
教學重點:De Morgan 是省閘神器。 \(\lnot A \lor \lnot B = \lnot(A \land B)\)—— 兩顆反相器加一顆 OR,坍縮成一顆 NAND。 第 1.4 講「NAND 萬能」的實戰意義就在這: 化簡後多看一眼有沒有 \(\lnot x \lor \lnot y\) 或 \(\lnot x \land \lnot y\) 的模式,直接換成 NAND/NOR。
第 14 題(4 變數):質數偵測器——必要項與自由選擇
輸入 \(A,B,C,D\) 是 4 位元二進位數 \(N\)(\(A\) 為最高位, \(N = 0 \sim 15\))。當 \(N\) 是質數 (\(2,3,5,7,11,13\))時 \(f = 1\)。真值表:
| \(N\) | \(A\) | \(B\) | \(C\) | \(D\) | \(f\) |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 0 | 1 | 0 |
| 2 | 0 | 0 | 1 | 0 | 1 |
| 3 | 0 | 0 | 1 | 1 | 1 |
| 4 | 0 | 1 | 0 | 0 | 0 |
| 5 | 0 | 1 | 0 | 1 | 1 |
| 6 | 0 | 1 | 1 | 0 | 0 |
| 7 | 0 | 1 | 1 | 1 | 1 |
| \(N\) | \(A\) | \(B\) | \(C\) | \(D\) | \(f\) |
|---|---|---|---|---|---|
| 8 | 1 | 0 | 0 | 0 | 0 |
| 9 | 1 | 0 | 0 | 1 | 0 |
| 10 | 1 | 0 | 1 | 0 | 0 |
| 11 | 1 | 0 | 1 | 1 | 1 |
| 12 | 1 | 1 | 0 | 0 | 0 |
| 13 | 1 | 1 | 0 | 1 | 1 |
| 14 | 1 | 1 | 1 | 0 | 0 |
| 15 | 1 | 1 | 1 | 1 | 0 |
第一步:填圖。最小項 \(= \{m_2, m_3, m_5, m_7, m_{11}, m_{13}\}\):
第二步:先鎖定必要群。沒有 4 格以上的矩形, 逐一問「這個 1 有哪些可成的對」:
\(m_2\):唯一相鄰的 1 是 \(m_3\) \(\Rightarrow \lnot A \lnot B C\)(必要,蓋 \(m_2,m_3\));
\(m_{11}\):唯一相鄰的 1 是 \(m_3\)(上下迴繞) \(\Rightarrow \lnot B C D\)(必要,蓋 \(m_{11},m_3\));
\(m_{13}\):唯一相鄰的 1 是 \(m_5\) \(\Rightarrow B \lnot C D\)(必要,蓋 \(m_{13},m_5\));
剩 \(m_7\) 未蓋:它可以配 \(m_5\)(\(\Rightarrow \lnot A B D\)) 或配 \(m_3\)(\(\Rightarrow \lnot A C D\))——任選其一, 兩種都最簡。
第三步:最簡式(擇 \(\lnot A B D\))。 \[\boxed{f = \lnot A \lnot B C \;\lor\; \lnot B C D \;\lor\; B \lnot C D \;\lor\; \lnot A B D}\] (把最後一項換成 \(\lnot A C D\) 亦為最簡。)
第四步:電路。用 3 輸入 AND 與 4 輸入 OR 畫骨架 (實作時各拆成兩顆 2 輸入閘即可); \(\lnot A\)、\(\lnot B\)、\(\lnot C\) 各一顆反相器共用:
(na) at (-0.7,4.8) ; (nb) at (-0.7,3.4) ; (nc) at (-0.7,2.0) ; (a1) at (2.6,4.5) ; (a2) at (2.6,2.9) ; (a3) at (2.6,1.3) ; (a4) at (2.6,-0.3) ; (o) at (5.6,2.1) ; (na.in 1) – ++(-0.4,0) node[left]\(A\); (nb.in 1) – ++(-0.4,0) node[left]\(B\); (nc.in 1) – ++(-0.4,0) node[left]\(C\); (na.out) – ++(0.35,0) |- (a1.in 1); (nb.out) – ++(0.55,0) |- (a1.in 2); (a1.in 3) – ++(-3.8,0) node[left]\(C\); (nb.out) ++(0.55,0) |- (a2.in 1); (a2.in 2) – ++(-3.8,0) node[left]\(C\); (a2.in 3) – ++(-3.8,0) node[left]\(D\); (a3.in 1) – ++(-3.8,0) node[left]\(B\); (nc.out) – ++(0.35,0) |- (a3.in 2); (a3.in 3) – ++(-3.8,0) node[left]\(D\); (na.out) ++(0.35,0) |- (a4.in 1); (a4.in 2) – ++(-3.8,0) node[left]\(B\); (a4.in 3) – ++(-3.8,0) node[left]\(D\); (a1.out) – ++(0.3,0) |- (o.in 1); (a2.out) – ++(0.25,0) |- (o.in 2); (a3.out) – ++(0.25,0) |- (o.in 3); (a4.out) – ++(0.3,0) |- (o.in 4); (o.out) – ++(0.4,0) node[right]\(f\);
驗算:\(N{=}9\,(1001)\):四項依序 \(\lnot A{=}0\)✗、\(C{=}0\)✗、\(B{=}0\)✗、\(\lnot A{=}0\)✗ \(\Rightarrow 0\) ✓(9 不是質數); \(N{=}13\,(1101)\):\(B\lnot C D = 1\) ✓; \(N{=}15\,(1111)\):\(\lnot A{=}0\)、\(\lnot B{=}0\)、\(\lnot C{=}0\) \(\Rightarrow 0\) ✓。
教學重點:完整的質蘊涵項流程。 這題把 Quine–McCluskey 的精神走了一遍: (1) 列出所有質蘊涵項(可成的最大群); (2) 找必要的(某個 1 只有它能蓋); (3) 剩餘的 1 用最少的群補滿——補的時候若有多種選擇, 任一種都算最簡解。考卷上寫「\(m_7\) 取 \(\lnot ABD\) 或 \(\lnot ACD\) 皆可」會讓閱卷者知道你真的懂。
第 15 題(5 變數):雙層卡諾圖——\((\lnot C \land D) \lor (A \land B \land E)\)
\(f(A,B,C,D,E)\) 由最小項給定(\(A\) 為最高位): \[f = \Sigma m(2,\,3,\,10,\,11,\,18,\,19,\,25,\,26,\,27,\,29,\,31).\] 等價的功能描述:「\(C{=}0\) 且 \(D{=}1\)」時輸出 1; 另外「\(A{=}B{=}E{=}1\)」時也輸出 1。 請畫出 5 變數卡諾圖(\(A=0\) 與 \(A=1\) 兩層)、 求最簡布林式並畫出電路。
第一步:分層填圖。5 變數 \(= 2^5 = 32\) 格, 拆成兩張 \(4\times4\) 圖:左層 \(A=0\)(\(m_0\)–\(m_{15}\))、 右層 \(A=1\)(\(m_{16}\)–\(m_{31}\),層內編號減 16)。 兩層同位置的格子互為相鄰(只差 \(A\))。
| \(A = 0\) | \(A = 1\) |
第二步:圈群(跨層思考)。
跨兩層的 8 格群:兩層的相同位置各有一個 「\(BC{=}00\) 列與 \(BC{=}10\) 列、\(DE\in\{11,10\}\) 欄」 的迴繞 \(2\times2\)(\(m_2,m_3,m_{10},m_{11}\) 層內編號)。 上下疊起來共 8 格:\(A,B,E\) 都有變, 只剩 \(C{=}0\)、\(D{=}1\) \(\Rightarrow \lnot C \land D\) (消 3 個變數!);
\(A=1\) 層內的 4 格方塊 \(\{m_9,m_{11},m_{13},m_{15}\}\)(層內編號; \(BC\in\{10,11\}\)、\(DE\in\{01,11\}\)):\(C,D\) 消去, 加上整群都在 \(A{=}1\) 層 \(\Rightarrow A \land B \land E\)。
\(m_{29}, m_{31}\) 只有第二群能蓋、\(m_2\) 等只有第一群能蓋, 兩群皆必要且已蓋滿全部 11 個 1。
第三步:最簡式。 \[\boxed{f = (\lnot C \land D) \lor (A \land B \land E)}\]
第四步:電路(1 NOT \(+\) 3 AND \(+\) 1 OR \(= 5\) 閘)。
(nc) at (0,2.3) ; (a1) at (2.6,1.75) ; (a2) at (0,-0.5) ; (a3) at (2.6,-0.9) ; (o) at (5.0,0.5) ; (nc.in 1) – ++(-0.4,0) node[left]\(C\); (nc.out) – ++(0.3,0) |- (a1.in 1); (a1.in 2) – ++(-3.3,0) node[left]\(D\); (a2.in 1) – ++(-0.65,0) node[left]\(A\); (a2.in 2) – ++(-0.65,0) node[left]\(B\); (a2.out) – ++(0.25,0) |- (a3.in 1); (a3.in 2) – ++(-3.3,0) node[left]\(E\); (a1.out) – ++(0.25,0) |- (o.in 1); (a3.out) – ++(0.25,0) |- (o.in 2); (o.out) – ++(0.4,0) node[right]\(f\);
驗算:\(m_{27}\,(11011)\):\(C{=}0,D{=}1 \Rightarrow\) 第一項 \(=1\) ✓(它同時也滿足 \(ABE\)——重疊無妨); \(m_{29}\,(11101)\):\(C{=}1\) 使第一項 \(=0\), 但 \(A{=}B{=}E{=}1 \Rightarrow 1\) ✓; \(m_{17}\,(10001)\):\(D{=}0\) 且 \(B{=}0\) \(\Rightarrow 0\) ✓。
教學重點:第三個維度。 5 變數把「甜甜圈」再加一維:同位置的上下兩層格子相鄰。 圈群時先問「這個群兩層都有嗎?」——有就把 \(A\) 消掉 (本題的 \(\lnot C D\));只出現在單層的群則保留 \(A\) 或 \(\lnot A\)(本題的 \(ABE\))。 Lab 1 的第 5 題用的正是同一招。
總結:15 題速查表
| 題 | 最小項 | 最簡布林式 | 本題教的招 |
|---|---|---|---|
| 1 | \(\Sigma m(1,2,3)\)(2 變數) | \(A \lor B\) | 群可以重疊 |
| 2 | \(\Sigma m(1,2)\)(2 變數) | \(A \oplus B\) | 對角 1 \(=\) XOR,圈不動 |
| 3 | \(\Sigma m(0,2,4,6)\) | \(\lnot C\) | 4 格群消 2 變數、左右迴繞 |
| 4 | \(\Sigma m(3,5,6,7)\) | \(AB \lor AC \lor BC\) | 多數決、三群共用一格 |
| 5 | \(\Sigma m(0,4,5,7)\) | \(\lnot B\lnot C \lor AC\) | 從最挑剔的 1 下手 |
| 6 | \(\Sigma m(1,2,3,7)\) | \(\lnot AC \lor \lnot AB \lor BC\) | 三對子皆必要、共用反相器 |
| 7 | \(\Sigma m(0,1,2,5,6,7)\) | \(\lnot A\lnot B \lor AC \lor B\lnot C\) 等 | 循環圖、最簡解不唯一 |
| 8 | \(\Sigma m(1,2,4,7)\) | \(A \oplus B \oplus C\) | 棋盤格 \(=\) 同位、用 XOR |
| 9 | \(\Sigma m(0,2,8,10)\) | \(\lnot B\lnot D = \lnot(B{\lor}D)\) | 四角迴繞、NOR 省閘 |
| 10 | \(\Sigma m(5,7,13,15)\) | \(BD\) | 中央方塊 |
| 11 | \(\Sigma m(0\text{–}3,8\text{–}11,15)\) | \(\lnot B \lor ACD\) | 8 格群+借格救孤 1 |
| 12 | \(\Sigma m(1,3,5,7,9)\) | \(\lnot AD \lor \lnot B\lnot CD\) | 上下迴繞、提取公因式 |
| 13 | \(\Sigma m(2,3,6,7,10,11)\) | \(C \land \lnot(AB)\) | De Morgan 換 NAND |
| 14 | \(\Sigma m(2,3,5,7,11,13)\) | 四項 SOP(見內文) | 必要項+自由選擇 |
| 15 | \(\Sigma m(2,3,10,11,18,19,\) | \(\lnot CD \lor ABE\) | 雙層(5 變數)K-map |
| \(\;25,26,27,29,31)\) |
通用檢查清單(考前背這五條):
行列標籤是格雷碼(\(00,01,11,10\))了嗎?
每個群都是 \(2^k\) 格的矩形嗎?有沒有更大的圈法?
迴繞檢查過了嗎(左右、上下、四角、跨層)?
每個群至少擁有一個「別群蓋不到」的 1 嗎 (否則它是多餘的)?
化簡完,代 2–3 列回真值表驗算了嗎?