我很确定我记得在我的一门大学课程中做过这样的事情,并且有某种公式,但除此之外,我的想法让我失望。
给定语句: ( a OR b OR d ) AND ( a OR c )
我很确定这可以简化为:( a OR b OR d OR c )
但我不记得我将如何证明这一点。
也许是一系列逻辑表?
我很确定我记得在我的一门大学课程中做过这样的事情,并且有某种公式,但除此之外,我的想法让我失望。
给定语句: ( a OR b OR d ) AND ( a OR c )
我很确定这可以简化为:( a OR b OR d OR c )
但我不记得我将如何证明这一点。
也许是一系列逻辑表?
您不能将“(a OR b OR d)AND(a OR c)”减少为“(a OR b OR d OR c)”,因为前者对“c=true, a,b,d=false”不满意,而后者是。所以你也不能证明减少是正确的:)
一般来说,有很多方法可以减少布尔公式的大小,这也是您要优化什么的问题(总大小?条件评估的平均次数?)。卡诺图仅适用于少数变量。将大的布尔公式简化为更小的布尔公式是一个高级主题,它是自动逻辑电路设计等的关键。
卡诺图?逻辑表达式减少?
卡诺图,关键是“绘制”所有可能的输入并指示它们的输出。然后您可以开始过滤掉对输出没有影响的输入,从而减少映射。一旦它被优化,你就可以从中产生你的逻辑。
(a 或 b 或 d) 与 (a 或 c)
这意味着当 a 为真时,一切都是真的!
=> a OR { (b OR d) AND (c) }
=> a OR ( b AND C) OR ( d and C )
我认为结果( a OR b OR d OR c )是错误的,但是当它错误时请帮帮我。
a 或 {(b OR d) AND c}
推理:如果“a”,则该陈述为真。否则,您需要 b 或 d (以满足语句的第一部分)和 c (满足 !a 的情况下的后半部分)
使用卡诺图:
这是 a OR b OR d:
\ab 光盘\ 00 01 11 10 ---+-----------+ 00 | | X| X| X| 01 | X| X| X| X| 11 | X| X| X| X| 10 | | X| X| X| +-----------+
这是一个 OR c:
\ab 光盘\ 00 01 11 10 ---+-----------+ 00 | | | X| X| 01 | | | X| X| 11 | X| X| X| X| 10 | X| X| X| X| +-----------+
将它们相交,我们得到:
\ab 光盘\ 00 01 11 10 ---+-----------+ 00 | | | X| X| 01 | | | X| X| 11 | X| X| X| X| 10 | | X| X| X| +-----------+
显然,这是一个 OR (something),其中 (something) 是:
00 01 11 | X| X| 10 | | X|
由于 (something) 不是一个矩形,它需要两个表达式,可以是 AND'ed 或 OR'ed 一起,这取决于我们想要如何处理它。在这个例子中我们将使用 OR,因为它给出了一个更简单的表达式。
在这种情况下,我们可以将两个相邻的 X 组合在一起,再加两个以填充整个 cd 行,因此 cd 可以是表达式之一。我们也可以将两者组合在一起,将两者放在右侧,形成一个正方形。这个正方形代表表达式 bc,因为 a 和 d 在正方形内都不同。
所以最终的表达式是OR ((c AND d) OR (b AND d))或a + cd + bd。好多了,不是吗?
SOP 最小形式:
y = a | b&c | c&d;
POS 具有相同的成本(实现逻辑图的门数):
y = (a|c)&(a|b|d);
是的,你可以证明这一点。您不能将其简化为( a OR b OR d OR c )
看下面的第 3 行。您的减少将无法产生正确的答案。
只需运行它:
ABCD
0 0 0 0 = 0
0 0 0 1 = 0
0 0 1 0 = 0
。
.
.
1 0 0 0 = 1
1 0 0 1 = 1
到目前为止,我有 (A OR (???)) :(