布林代數簡化計算器

將任意布林運算式化簡為最簡積之和與和之積,並提供完整的質隱含項與真值表逐列驗證。

運算式

請將變數寫為單一字母。AND 可寫為 AB、A·B、A*B 或 A AND B;OR 可寫為 A + B 或 A OR B;NOT 可寫為 A'、!A 或 NOT A;亦支援 XOR、NAND 與 NOR。
插入運算子

最多支援 6 個不同的變數與 2,000 個字元。允許使用常數 0 與 1。

試用運算式

最簡形式

您的最簡形式將顯示在此處

輸入布林運算式,即可查看其最簡積之和、和之積,以及簡化步驟。

請輸入布林運算式以開始簡化。

您的運算式皆在此瀏覽器中進行簡化,絕不會離開您的裝置。

常見問題

本工具能識別哪些運算式寫法?

本工具支援所有常見的表示法,且可自由混合使用:工程風格(AB + A'C,含隱式 AND 與代表 NOT 的單引號)、程式風格(A && !B || C、A ^ B)、邏輯符號(¬ ∧ ∨ ⊕ ⊼ ⊽)以及英文單字(A AND B OR NOT C、NAND、NOR)。多個字母相連(例如 ABC)代表 A AND B AND C,而 AND、OR、NOT、XOR、NAND、NOR 等單字一律會被視為運算子。

最簡形式是如何求得的?

本工具會建立完整的真值表,將相鄰且值為 1 的列合併為質隱含項(Quine–McCluskey 法),保留必要質隱含項,並以精確最小覆蓋來補足其餘未覆蓋的列。對於積之和(SOP)形式,此結果保證為最簡形式(非啟發式演算法);對值為 0 的列執行相同的步驟,即可得出最簡和之積(POS)。

SOP 與 POS 結果有何不同?

兩者皆描述同一個函數。積之和(SOP)是將多個 AND 項以 OR 連結(例如 AB' + BC),直接對應到 AND–OR 電路;和之積(POS)則是將多個 OR 因式以 AND 連結(例如 (A + B)(B' + C)),對應到 OR–AND 電路。根據函數的不同,其中一種形式所需的邏輯閘可能比另一種更少,因此本工具一律會同時顯示這兩種結果。

為什麼最多只支援 6 個變數?

六個變數就已經會產生 64 列的真值表,這大約是手動閱讀與檢查的極限。超過這個限制,雖然理論上仍能進行最小化,但本頁面所建立的推導過程與表格將不再適合用作直觀的證明。若要處理更多變數的函數,使用支援檔案輸出的邏輯設計軟體會是更合適的選擇。

數位邏輯設計的核心:布林代數簡化

在數位電路設計與計算機科學中,將複雜的邏輯函數化簡至最簡形式是降低硬體成本與提升運算效率的關鍵步驟。布林代數簡化計算器是一款專為此需求設計的線上工具,能夠將任意布林運算式化簡為最簡積之和(SOP)與最簡和之積(POS)形式。

本工具在運算時,會同步產生完整的真值表,並詳細列出 Quine–McCluskey 演算法的每一個步驟。所有運算與化簡程序皆直接在您的瀏覽器中進行,運算式絕不會上傳至任何外部伺服器,確保您的資料隱私。


支援的輸入格式與語法規範

本工具支援最多 6 個不同的單一字母變數,運算式長度上限為 2,000 個字元。為了適應工程、程式設計及數理邏輯等不同領域的書寫習慣,系統支援多種運算子表示法,且允許在同一個運算式中混合使用:

  • AND(及):可使用隱式相乘(例如 AB)、中點 A·B、星號 A*B、英文 A AND B、程式符號 A && B 或邏輯符號 。多個字母相連(如 ABC)會被自動解讀為 A AND B AND C
  • OR(或):可使用加號 A + B、英文 A OR B、雙豎線 A || B 或邏輯符號
  • NOT(非):可使用單引號 A'、驚嘆號 !A、英文 NOT A 或邏輯符號 ¬
  • XOR(互斥或):可使用 A ^ BA XOR BA ⊕ B
  • NAND(與非):可使用 A NAND B
  • NOR(或非):可使用 A NOR B
  • 常數:允許直接輸入邏輯常數 01

介面亦提供「試用運算式」快捷鍵,可快速載入經典範例,包括「合併項」(共識定理範例)、「反向積」(德摩根定律範例)及「三向 XOR」。若要清除輸入,可直接點擊「清除」按鈕。

輸出結果與診斷面板說明

當您輸入運算式後,工具會即時呈現多維度的分析結果:

  1. 解讀為:顯示系統對您輸入內容的標準化解讀,以便確認語法解析無誤。
  2. 最簡積之和 (SOP)最簡和之積 (POS):顯示化簡後的最終代數式,並提供「複製結果」按鈕。
  3. 一目了然:此診斷面板提供核心量化數據,包括:
    • 變數:偵測到的變數清單。
    • 值為 1 的列:對應的最小項(Minterms)數量或列表。
    • 質隱含項:找到的質隱含項總數。
    • 必要質隱含項:決定最簡覆蓋所必需的質隱含項數量。
    • 文字數,簡化前 → 簡化後:呈現邏輯變數出現次數的減少幅度。
    • 方法:顯示「Quine–McCluskey,精確最小覆蓋」。

Quine–McCluskey 演算法與詳細簡化步驟

手動使用卡諾圖(K-map)化簡邏輯函數時,一旦變數超過 4 個,圖形就會變得極其複雜且容易出錯。本工具採用系統化的 Quine–McCluskey 演算法,能夠精確求得最小覆蓋,其推導步驟如下:

  • 步驟一:建立真值表與列出最小項
    系統會根據變數數量(例如 n 個變數對應 2ⁿ 列)建立真值表,並指出函數在哪些列等於 1(Σ m),在哪些列等於 0(Π M)。
  • 步驟二:合併相鄰列以尋找質隱含項
    透過逐級比較僅差一個位元的相鄰項,將其合併並消去變數,直到無法繼續合併為止,從而列出所有「質隱含項」。
  • 步驟三:篩選必要質隱含項
    找出那些「至少覆蓋了一個未被其他質隱含項覆蓋之最小項」的「必要質隱含項」。
  • 步驟四:覆蓋剩餘列
    若必要質隱含項已覆蓋所有值為 1 的列,則化簡完成;若仍有未覆蓋的列,則尋找最少數量的額外質隱含項來完成覆蓋。
  • 步驟五:求取 POS 形式
    對值為 0 的列執行相同的合併與覆蓋步驟,即可求得最簡和之積。

最後,系統會透過真值表,逐列比對原始運算式與最簡 SOP 的輸出值,確保兩者在所有邏輯組合下完全一致。


常見錯誤與異常處理

若輸入的運算式不符合規範,工具會顯示對應的錯誤提示以協助修正:

  • 請輸入布林運算式。:輸入框為空時顯示。
  • 請將運算式長度保持在 2,000 個字元以內。:超出字元限制時觸發。
  • ‹char›」(第 ‹position› 個字元)不是布林運算子、變數或常數。:輸入了不支援的符號。
  • 在第 ‹position› 個字元附近,運算子缺少運算元 — 請檢查是否有懸空的 +、· 或 ⊕。:語法不完整或運算子前後缺少變數。
  • 括號不對稱 — 請增加或刪除括號。:左右括號數量不匹配。
  • 此運算式使用了 ‹count› 個不同的變數;本簡化器最多支援 6 個。:變數數量超過 6 個時觸發。

對於特殊常數運算式,系統會直接給出結論。例如恆真式會顯示「此運算式的值恆為 1:任何變數組合皆能使其為真。」;矛盾式則顯示「此運算式的值恆為 0:沒有任何變數組合能使其為真。」。若輸入的運算式已無法再簡化,則會提示「您的運算式已經是最簡積之和形式。」。


常見問題

為什麼最多只支援 6 個變數?

六個變數就已經會產生 64 列的真值表,這大約是手動閱讀與檢查的極限。超過這個限制,雖然理論上仍能進行最小化,但本頁面所建立的推導過程與表格將不再適合用作直觀的證明。若要處理更多變數的函數,使用支援檔案輸出的邏輯設計軟體會是更合適的選擇。

最簡形式是如何求得的?

本工具會建立完整的真值表,將相鄰且值為 1 的列合併為質隱含項(Quine–McCluskey 法),保留必要質隱含項,並以精確最小覆蓋來補足其餘未覆蓋的列。對於積之和(SOP)形式,此結果保證為最簡形式(非啟發式演算法);對值為 0 的列執行相同的步驟,即可得出最簡和之積(POS)。

本工具能識別哪些運算式寫法?

本工具支援所有常見的表示法,且可自由混合使用:工程風格(AB + A'C,含隱式 AND 與代表 NOT 的單引號)、程式風格(A &&!B || C、A ^ B)、邏輯符號(¬ ∧ ∨ ⊕ ⊼ ⊽)以及英文單字(A AND B OR NOT C、NAND、NOR)。多個字母相連(例如 ABC)代表 A AND B AND C,而 AND、OR、NOT、XOR、NAND、NOR 等單字一律會被視為運算子。

SOP 與 POS 結果有何不同?

兩者皆描述同一個函數。積之和(SOP)是將多個 AND 項以 OR 連結(例如 AB' + BC),直接對應到 AND–OR 電路;和之積(POS)則是將多個 OR 因式以 AND 連結(例如 (A + B)(B' + C)),對應到 OR–AND 電路。根據函數的不同,其中一種形式所需的邏輯閘可能比另一種更少,因此本工具一律會同時顯示這兩種結果。