我如何简化f = x'yz + xy'z + xyz'?

问题描述 投票:0回答:2

我正在努力简化表达式f = x'yz + xy'z + xyz' + xyz。实际上,它可能不是这种表达方式。问题是:简化投票系统的布尔表达式,系统为:三个人对多个候选人投票,两个或两个以上的人应该同意(真实)候选人才能通过。所以我认为答案是xy + yz + xz,但我无法弄清楚它们之间的过程。谁能解释一下?

enter image description here

boolean-logic karnaugh-map
2个回答
1
投票

根据幂等/身份法,我们有x + x = x,所以xyz + xyz = xyz。应用这个原则,我们可以将表达式重写为:

 f = x'yz + xy'z + xyz' + xyz
=> f = x'yz + xy'z + xyz' + xyz + xyz + xyz --OR with xyz twice without affecting the value
=> f = x'yz + xyz + xy'z + xyz + xyz' + xyz --Rearrange
=> f = yz (x + x') + xz (y + y') + xy(z' + z) --Group
=> f = yz + xz + xy --Since x+x' = 1

也就是说,如图所示,您可以简单地将每对输入与AND组合在一起,并将它们组合在一起以获得相同的结果。通过这样做,您可以确保:

  • 如果3个输入中的任何2个为真,则总体结果为真
  • 当所有3都为真时,结果仍然是正确的

以这种方式表达它的优点是,您可以一次只关注每对输入,而不必担心第三对输入的影响。


0
投票

一种简单的方法,不涉及逻辑推理

写一个truth table。对于三个输入,有2 ^ 3 = 8行。

四行对应于乘积和表达式中的给定项。

Karnaugh map中输入表达式的八个值:

enter image description here

如图所示,将相邻的1个项组合成块。如果一对单元在一个输入中只是不同,则它们可以合并成更大的块。这样,块在每个合并步骤中将其单元数加倍并将其输入计数减少一。

每个得到的块对应于最小化表达式中的一个implicant项。

绘制地图并找到块可以使用马尔堡大学的一个漂亮的online tool自动完成。

© www.soinside.com 2019 - 2024. All rights reserved.