卡诺图求解器 (K-Map)
使用卡诺图、真值表、布尔表达式、最小项或最大项快速化简布尔函数,并逐步查看SOP/POS结果。
您想如何输入您的卡诺图?
点击单元格在 0、1 和 X (无关项) 之间切换
化简结果
卡诺图分组
函数为常数;卡诺图全部被分组,或没有任何单元格被分组。
化简表达式
F = 0
原始分组明细
- 项
- 0
- 文字
- 0
- 逻辑门
- 0
逻辑门电路
同步真值表
根据您的 卡诺图 输入自动更新。
工作原理
只需四个步骤,即可从布尔函数得到化简后的逻辑电路。
选择变量
根据需要化简的布尔函数,选择 2、3、4 或 5 个变量。
输入函数
输入布尔表达式、最小项或最大项,也可以直接编辑真值表。
查看 K-Map 分组
卡诺图会自动标出由 2、4、8 个单元格组成的分组,并寻找最大的有效分组。
获取化简结果
复制化简后的 SOP 或 POS 表达式,查看逻辑电路,或将完整解答导出为 PDF。
你可以查看什么
快速了解求解器的主要功能。滚动即可查看各个部分。
使用卡诺图化简布尔函数
卡诺图(K-Map)会把只相差一个变量的输入组合放在相邻位置,让布尔函数中的可合并部分更容易看出来。
本工具支持 2、3、4 和 5 个变量。你可以直接操作卡诺图,也可以从真值表、布尔表达式、最小项或最大项开始。
这些输入方式表示的是同一个函数。修改其中一个值后,其他视图也会同步更新。
0、1 和 X 分别表示什么?
每个 K-Map 单元格可以是:
1— 该输入组合下函数为真;0— 该输入组合下函数为假;X— 该输入组合的输出不需要固定。
X表示 don't-care 条件。如果它能帮助形成更大的分组并减少变量,就可以使用;如果没有帮助,也可以忽略。
从真值表到 K-Map
真值表列出所有可能的输入组合以及对应输出。
卡诺图使用相同的数据,但按 Gray code 排列单元格,因此相邻单元格只会有一个变量不同。
例如:
A'B'
A'B
只有 B发生变化。
因此这两个项可以化简为:
A'
在一个分组中发生变化的变量,不需要保留在最终项中。
同样的原理也适用于 4、8 或 16 个单元格组成的分组。
最小项、最大项和布尔表达式
如果题目已经给出了最小项编号,就不必逐个填写 K-Map 单元格。
例如:
Σm(1,3,5,7)
表示输出为 1 的最小项。
而:
ΠM(0,2,4,6)
表示输出为 0 的最大项。
你也可以直接输入布尔表达式。
Solver 会计算表达式在所有输入组合下的结果,并生成相应的真值表、K-Map、最小项和最大项。
这样可以在同一页面中比较一个布尔函数的不同表示形式。
K-Map 分组规则
有效分组中的单元格数量必须是 2 的幂:
1, 2, 4, 8, 16
通常,合法分组越大,最终表达式中保留的文字越少。
卡诺图的边缘也是相邻的。
最左侧单元格可以和最右侧单元格组成分组,上边缘和下边缘也一样。
因此,四个角也可能组成一个合法分组。
分组还可以重叠。如果同一个单元格参与多个分组能得到更简单的表达式,这种做法是允许的。
Solver 会直接在卡诺图中显示使用到的分组,便于对照最终结果。
SOP 与 POS
SOP (Sum of Products)主要从输出为 1 的单元格开始进行化简。
例如:
A'B + BC
POS (Product of Sums)则主要使用输出为 0 的单元格。
例如:
(A + B')(B + C)
SOP 并不一定总是比 POS 更短。
有些函数用 SOP 表示更简单,而有些函数使用 POS 时会需要更少的项或文字。
如果题目没有规定格式,可以比较两种结果。
Quine-McCluskey 与 Petrick's Method
在较小的 K-Map 中,合适的分组通常比较容易直接看出来。
但是对于 4 或 5 个变量的函数,可能会存在多个有效覆盖。
Solver 使用 Quine-McCluskey 系统地寻找 implicant。
不能再继续扩大的 implicant 称为 prime implicant。
其中有些 prime implicant 是必需的,因为它们覆盖了其他 prime implicant 无法覆盖的必要最小项。
如果选择这些必需项后仍有多个可行覆盖,Petrick's Method会用于分析剩余组合。
这在仅凭卡诺图外观无法立即判断哪个分组组合更合适时尤其有用。
2~5 变量卡诺图
2 变量 K-Map有 4 个单元格。
3 变量 K-Map有 8 个单元格,也更容易看出两侧边缘之间的邻接关系。
4 变量卡诺图有 16 个单元格,在数字逻辑课程中很常见。
5 变量 K-Map包含 32 种输入组合。当存在多个 prime implicant 或 don't-care 条件时,手动化简会明显更复杂。
在所有支持的变量数量下,Solver 都会让 K-Map、真值表、表达式、最小项和最大项保持同步。
逻辑电路与 PDF 导出
化简后的结果不仅可以显示为布尔表达式。
还可以生成逻辑电路,直观看到 SOP 或 POS 结果如何对应 AND、OR、NOT 门。
结果区域也可以显示项数、文字数和逻辑门数量。
如果需要保存完整过程,可以把 K-Map、分组、步骤和电路一起导出为 PDF。
常见问题
什么是卡诺图?
支持多少个变量?
K-Map 中的 X 是什么?
X表示 don't-care 条件。如果它能帮助形成更大的分组,就可以使用。可以直接输入真值表吗?
0、1 或 X。可以输入最小项和最大项吗?
Σm(...) 和 ΠM(...)。SOP 和 POS 有什么区别?
1 的组合,POS 则从输出为 0 的组合开始。