【问题标题】:How do i simplify f = x'yz + xy'z + xyz'?我如何简化 f = x'yz + xy'z + xyz'?
【发布时间】:2019-04-01 09:24:47
【问题描述】:

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

【问题讨论】:

  • 图表是答案还是问题?你被困在哪里了?
  • tl;dr: 我不明白为什么 x'yz + xy'z + xyz' + xyz = xy + yz + xz (编辑:英语不是我的第一语言,所以对不起如果很难理解我的意思)

标签: boolean-logic karnaugh-map


【解决方案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

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

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

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

【讨论】:

  • 哇,我没想过那样接近它!我在网上找到的所有结果都包括将某些内容更改为 xor/xnor 表达式,我真的很困惑。谢谢,这更容易理解!
【解决方案2】:

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

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

四行对应于您的 sum-of-products 表达式中的给定项。

将表达式的八个值输入Karnaugh map

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

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

使用马尔堡大学的 online tool 可以自动绘制地图和查找街区。

【讨论】:

    猜你喜欢
    • 2014-03-05
    • 2015-06-10
    • 2021-05-07
    • 2014-04-21
    • 2019-11-12
    • 1970-01-01
    • 1970-01-01
    • 2016-12-29
    • 1970-01-01
    相关资源
    最近更新 更多