我正在简化表达式f = x'yz + xy'z + xyz' + xyz
。实际上,可能不是这个表达。问题是:简化投票系统的布尔表达式,该系统是:三人对多个候选人进行投票,并且两个或两个以上的人应就该候选人达成一致,然后才能通过。所以我认为答案应该是xy + yz + xz
,但我不知道两者之间的过程。谁能解释?
答案 0 :(得分: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运算,然后将它们进行OR运算以获得相同的结果。这样,您可以确保:
以这种方式表示的优势在于,您可以一次专注于每对输入,而不必担心第三个输入的影响。
答案 1 :(得分:0)
一种无需逻辑推理的简单方法
写一个truth table。对于三个输入,有2 ^ 3 = 8行。
四行对应于乘积和表达式中的给定术语。
将表达式的八个值输入到Karnaugh map中:
将相邻的1个项归为块,如图所示。 如果一对单元只是一个输入不同,则可以将它们合并为一个更大的块。这样,块在每个合并步骤中将其单元数加倍,并将输入数减少一。
每个结果块对应于最小化表达式中的一个implicant项。
使用不错的Marburg University online tool,可以自动完成绘制地图和查找街区的操作。