# 布尔代数表达式化简器（卡诺图辅助）

化简布尔函数并给出最小与或式（SOP）：输入表达式（A–D，+ 或 · 与、' 非，≤4 个变量）或直接给最小项 Σm 列表；用 Quine-McCluskey 算法求全部素蕴涵项，先取必要素蕴涵项再做精确最小覆盖，输出最小 SOP、格雷码卡诺图（2–4 变量）、Σm 规范式，并在全部赋值上验证与原函数一致。经典例：AB + A'B → B；Σm(0,1,2,4,5,6)（3 变量）→ B' + C'。

> 标准页面: https://elysiatools.com/zh/tools/boolean-algebra-simplifier

- **分类:** Math & Numbers

- **关键词:** 布尔代数, 卡诺图, 奎因-麦克拉斯基, 素蕴涵项, 最小与或式, 逻辑化简, 最小项, 数字逻辑, 开关代数, 格雷码

## 概述

布尔代数表达式化简器是一款专为数字逻辑设计打造的在线计算工具，支持 2 至 4 个变量的布尔函数化简。工具集成 Quine-McCluskey 算法与卡诺图辅助分析，能够精确提取素蕴涵项与必要素蕴涵项，输出最小与或式（SOP）、Σm 规范式以及基于格雷码排布的卡诺图，并在所有变量取值组合上自动完成等价性验证。

## 输入项

- **输入模式** (select)
- **布尔表达式（A–D）** (text): Classic switching-algebra notation: + OR, · or juxtaposition AND, ' or ! NOT, ^ XOR, parentheses. At most 4 distinct variables.
- **最小项列表（逗号分隔）** (text): Used in Minterms mode: the indices where the function is 1, e.g. 0,1,2,4,5,6.
- **变量个数** (select)

## 适用场景

- 在数字逻辑或计算机组成原理学习中，需要验证手工卡诺图圈选与代数化简结果时。
- 设计组合逻辑电路时，需要将复杂逻辑表达式或最小项真值表压缩为门电路最少的最小与或式（SOP）。
- 编写硬件描述语言（如 Verilog/VHDL）前，需要精简状态机译码逻辑或控制分支条件。

## 工作原理

- 解析输入的布尔表达式（支持 A–D 变量、+ 或、· 与、' 或 ! 非、^ 异或）或逗号分隔的最小项列表 Σm。
- 基于变量个数构建全赋值真值表与 ON-set 集合，并绘制格雷码编码的 2–4 变量卡诺图矩阵。
- 运行 Quine-McCluskey 算法求解所有素蕴涵项，提取必要素蕴涵项并执行精确最小覆盖计算。
- 生成最小 SOP 表达式并统计项数与文字数，同时对全部 $2^n$ 种输入组合执行原式与化简式的等价性校验。

## 使用案例

- 电子工程系学生核对数字电路作业中的卡诺图画圈与逻辑表达式化简步骤。
- FPGA/ASIC 逻辑设计工程师快速评估组合逻辑的最小门电路实现复杂度。
- 嵌入式软件工程师优化复杂的多条件布尔分支判断语句以减少判断开销。

## 常见问题

### 工具支持哪些布尔运算符号？

支持加号 `+`（或）、乘号 `·` 或直接并排字母（与）、单引号 `'` 或感叹号 `!`（非）、脱字符 `^`（异或）以及圆括号。

### 支持的最大变量数量是多少？

支持 2 到 4 个变量（A、B、C、D），可对应 4、8 或 16 个最小项位置。

### 如何通过最小项索引（Σm）直接进行化简？

将“输入模式”切换为“最小项列表（Σm）”，选择变量个数后，在输入框中输入以逗号分隔的十进制索引（如 `0,1,2,4,5,6`）。

### 卡诺图是如何排布的？

卡诺图严格按照反射格雷码（如 00, 01, 11, 10）排列行和列，清晰展示相邻最小项单元格的 1/0 分布。

### 输出结果中的全赋值验证是什么意思？

系统遍历变量的所有可能二进制输入（如 3 变量共 8 种组合），逐一对比原函数与化简后 SOP 的输出值，确保逻辑完全等价。

## 相关工具

- [稀释比换算器（1:X ↔ 1/X ↔ 百分比）](https://elysiatools.com/zh/tools/dilution-ratio-converter): 在实验室稀释的各色写法之间互换：比例 1:X、分数 1/X、百分比浓度，并换算稀释倍数与溶质/稀释剂份数。支持两种 1:X 约定（X 为总份数，或 1 份溶质加 X 份稀释剂），输入最终体积即可算出溶质与稀释剂的取用量。经典示例：1:5 = 1/5 = 20%，配 100 mL 取 20 mL 原液加 80 mL 稀释剂。
- [扩展欧几里得算法（ax + by = gcd(a, b)）](https://elysiatools.com/zh/tools/extended-euclidean-algorithm): 对任意符号的整数 a、b 求解 Bézout 等式 a·x + b·y = gcd(a, b)：给出完整的前向除法步骤表（每行满足 r = a·s + b·t）、gcd 与 lcm。填入可选的右端 c 即变身为线性丢番图方程求解器：gcd | c 时给出特解与通解 x = x₀ + (b/g)t，否则明确报告无整数解。经典例：240 × (−9) + 46 × 47 = 2。
- [模逆元计算器（扩展欧几里得算法）](https://elysiatools.com/zh/tools/modular-inverse-calculator): 用扩展欧几里得算法求 a⁻¹ mod m：给出 Bézout 系数 a·x + m·y = gcd(a, m) 与完整的前向系数表（每行满足 r = a·s + m·t），并用 a × a⁻¹ ≡ 1 (mod m) 回代验证。支持 RSA 量级的大数（可达 10⁵¹² 位数级输入）；gcd(a, m) ≠ 1 时明确报告逆元不存在。经典例：RSA 中 17⁻¹ mod 3120 = 2753。
- [模运算计算器（加减乘 / 逆元 / 快速幂）](https://elysiatools.com/zh/tools/modulo-arithmetic-converter): 在模 m 下做加、减、乘、逆元与快速幂运算，全部使用 BigInt 精确计算（数值可达 10¹⁸）。加、减、乘给出逐步约简过程并输出 \[0, m−1\] 上的规范代表；逆元用扩展欧几里得算法求 a⁻¹ mod m，gcd(a, m) ≠ 1 时明确报告不存在；快速幂展示平方-乘法表中指数二进制分解的每个数位。经典例：17⁵ mod 13 = 10；5⁻¹ mod 18 = 11。
- [真值表生成器](https://elysiatools.com/zh/tools/truth-table-generator): 生成布尔表达式的完整真值表（最多 6 个变量，64 行）：支持 + 或、^ 异或、·/*/& 或连写与、!/~/' 非、括号；按字母序列出变量，逐行列出赋值与函数值 F，并给出规范式 Σm（最小项）与 ΠM（最大项）。经典例：AB + A'C 的 ON-set 为 Σm(1,3,6,7)；A ^ B ^ C 为奇校验函数 Σm(1,2,4,7)。
- [角速度单位换算器（rad/s / rpm / deg/s / Hz）](https://elysiatools.com/zh/tools/angular-velocity-converter): 角速度/角频率单位互转：rad/s（SI 基准）↔ rpm（转每分，1=2π/60 rad/s）↔ deg/s（度每秒，1=π/180 rad/s）↔ Hz（转每秒，1=2π rad/s）。注意 Hz 用于角频率时指每秒一整圈，故 1 Hz=2π rad/s。经 rad/s 中转后输出目标单位，并列出全部四单位等值。参考：黑胶 33⅓ rpm≈3.49 rad/s、发动机怠速 ~800 rpm≈83.8 rad/s。
- [风管截面尺寸计算器（按风量与流速）](https://elysiatools.com/zh/tools/duct-size-calculator): 由风量 Q 与设计流速 v 求风管截面尺寸：截面积 A=Q/v。圆形风管直径 D=√(4A/π)；矩形风管给定长宽比 r=a/b，则 b=√(A/r)，a=r·b，并按 ASHRAE 给出等效直径 D_eq=1.30·(a·b)^0.625/(a+b)^0.25。风量支持 m³/s/m³/h/CFM，结果同时给出 mm 与英寸。
- [疲劳极限计算器（Goodman / Gerber / Soderberg）](https://elysiatools.com/zh/tools/fatigue-limit-calculator): 平均应力修正下的疲劳安全系数。给定应力幅 σ_a、平均应力 σ_m，以及材料 σ_uts、疲劳极限 σ_-1、屈服 σ_y，输出三种经典判据的安全系数：Modified Goodman（线性保守）、Gerber（抛物线，更贴合延性材料）、Soderberg（用 σ_y，最保守）。取三者最小值为控制值，并判定工作点是否在 Haigh 图 Goodman 线内侧。

## 示例

- [Web Python 图像处理示例](https://elysiatools.com/zh/samples/web-image-processing-python): Web Python 图像处理示例，使用 PIL/Pillow 包括读取、保存、缩放和格式转换
- [Android Java 图像处理示例](https://elysiatools.com/zh/samples/android-image-processing-java): Android Java 图像处理示例，包括图像读取保存、缩放和格式转换
- [Android Kotlin 图像处理示例](https://elysiatools.com/zh/samples/android-image-processing-kotlin): Android Kotlin 图像处理示例，包括图像读取保存、缩放和格式转换
- [Web Rust 图像处理示例](https://elysiatools.com/zh/samples/web-image-processing-rust): Web Rust 图像处理示例，包括图像读取保存、缩放和格式转换
