1

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

在此处输入图像描述

4

2 回答 2

3

根据幂等/恒等律,我们有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

也就是说,正如图表清楚地显示的那样,您可以简单地对每对输入进行“与”运算,然后将它们“或”在一起以获得相同的结果。通过这样做,您可以确保:

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

用这种方式表达的好处是你可以一次只关注每一对输入,而不用担心第三个输入的影响。

于 2019-04-01T10:14:29.590 回答
0

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

写一个真值表。对于三个输入,有 2^3 = 8 行。

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

将表达式的八个值输入到卡诺图中:

在此处输入图像描述

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

每个结果块对应于最小化表达式中的一个蕴涵项。

使用马尔堡大学的一个不错的在线工具可以自动绘制地图和查找块。

于 2019-04-01T14:17:09.813 回答