布尔逻辑 - 简化产品的总和

Posted

技术标签:

【中文标题】布尔逻辑 - 简化产品的总和【英文标题】:Boolean logic - simplifying sum of products 【发布时间】:2012-07-27 17:59:39 【问题描述】:

我有一个问题要求综合给定函数的最简单的乘积表达式总和。基本上,如果 AB == CD,则函数为 1,否则为 0,结果如下:

(!A && !B && !C && !D) || (!A && B && !C && D) || (A && !B && C && !D) || (A && B && C && D)

没有一个术语只有一点点不同,所以我看不出有一种方法可以将它们组合在一起并以这种方式简化它们。我已经绘制了如下卡诺图,但这似乎没有帮助,因为我不能将多个 1 组合在一起。

\ AB 00 01  11  10
CD +---+---+---+---+
00 | 1 | 0 | 0 | 0 |
   +---+---+---+---+
01 | 0 | 1 | 0 | 0 |
   +---+---+---+---+
11 | 0 | 0 | 1 | 0 |
   +---+---+---+---+
10 | 0 | 0 | 0 | 1 |
   +---+---+---+---+

所以我的问题是,上面的表达式是否已经是最简单的乘积表达式之和?

【问题讨论】:

【参考方案1】:

我认为你的卡诺图相当于:((A && C) || (!A && !C)) && ((B && D) || (!B && !D))

我认为这样会更简单。

【讨论】:

比较简单,不过这种形式,真的算不上乘积之和吧? 是的。它是产品的最小总和,而不是典型的产品总和。在此处查看***文章:en.wikipedia.org/wiki/…

以上是关于布尔逻辑 - 简化产品的总和的主要内容,如果未能解决你的问题,请参考以下文章

布尔逻辑:如何简化此 IF 语句?

计算机最基础的核心理论——布尔逻辑

布尔逻辑运算符

python-逻辑运算和布尔值

IT兄弟连 Java语法教程 逻辑运算符

js 非布尔值操作 逻辑与 和 逻辑或*