boolean-logic - 使用一些已知术语组合进行 bool 简化

标签 boolean-logic simplification

我正在使用 Quine-McCluskey 进行 bool 简化效果很好。

但是,我现在需要使用一些已知的术语组合进行简化。

例如,我想简化:

(A+B)C

如果我知道:

A+B == true

然后这简化为:

C

或者如果我知道:

BC == false

然后它简化为

AC

是否有一种算法可以在给定已知术语列表的情况下简化 bool 表达式?

最佳答案

我发现了这个问题的一个很好的解决方案。

Quine-McCluskey 能够处理真值表,其中某些术语被标记为“不关心”,这意味着该术语永远不会出现,因此最小化表达式可以返回 true 或 false。

例如:

A B result
0 0 0
0 1 don't care
1 0 don't care
1 1 con't care

可以清楚地看到,上面的函数可以最小化为仅返回“false”,因为这是我们唯一关心的结果。

因此,要处理已知术语,所要做的就是将真值表中已知术语评估为假的任何术语的结果设置为“不关心”。然后,Quine-McCluskey 算法会生成考虑已知项的最小化函数。

例如,如果我们有 A 和 B 的函数,并且我们知道 A == false,那么真值表中 A 为 true 的任何行都可以标记为 “不在乎”因为我们知道它永远不会发生。

关于boolean-logic - 使用一些已知术语组合进行 bool 简化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9438808/

相关文章:

c# - 为什么我必须在 bool 检查中将三元运算符表达式放在括号中?

grails - 如果不是,则条件无法按预期工作

php - 数组 AND() ?所有元素的逻辑与

Sympy 复数符号的绝对值和自变量

matrix - Maxima:简化矩阵分量

powershell if-else 不遵循任何一个分支

vhdl - 为什么4位加法器/减法器通过同时查看最后两个进位的两者来实现其溢出检测?

javascript - 实现基本的数学表达式简化器

maxima - 自定义简化(规则和模式)

python - 简化正则表达式