如何在布尔代数中将乘积和(SOP)表达式转换为乘积(POS)形式,反之亦然?
例如:F = xy'+ yz'
如何在布尔代数中将乘积和(SOP)表达式转换为乘积(POS)形式,反之亦然?
例如:F = xy'+ yz'
Answers:
我认为最简单的方法是将其转换为k-map,然后获取POS。在您的示例中,您具有:
\ xy
z \ 00 01 11 10
+-----+-----+-----+-----+
0 | | x | x | x |
+-----+-----+-----+-----+
1 | | | | x |
+-----+-----+-----+-----+
在这种情况下,排除左列将得到(x + y),排除两个底部中间的框将得到(z'+ y'),得到的答案是(x + y)(z'+ y')
F = xy'+ yz' 为SOP形式
也可以使用简单布尔代数技术将其保存为:
适用分配律:-F =(xy ')+ y 。'
F =(xy' + y)。(xy '+ z')转换为POS形式。
另一种方法就是对给定表达式进行补充:
如:xy'+ yz'
赞美:
(xy'+ yz')'
=(xy')'。(yz')'{使用De Morgans Law的(a + b)'= a'.b'}
=(x'+ y)(y'+ z)
也是POS形式...!
两次使用德摩根定律。
一次适用法律:
F' = (xy' + yz')'
= (xy')'(yz')'
= (x'+y)(y'+z)
= x'y' + x'z + yy' + yz
= x'y' + x'z + yz
再次申请:
F=F''
=(x'y'+x'z+yz)'
=(x'y')'(x'z)'(yz)'
=(x+y)(x+z')(y'+z')
=(x+y)(y'+z')
使用wolframalpha.com验证答案
编辑:答案可以简化一个更一步的布尔代数法共识
如果要在手工完成后检查工作,可以使用Logic Friday之类的程序。
请参阅“合取范式:从一阶逻辑转换”中的过程。
此过程涵盖了一阶逻辑的更一般情况,但命题逻辑是一阶逻辑的子集。
通过忽略一阶逻辑来简化,它是:
显然,如果您的输入已经在DNF(又名SOP)中,那么显然第一步和第二步都不适用。
令x = ab'c + bc'
x'=(ab'c + bc')'
根据德摩根定理,x'=(a'+ b + c')(b'+ c)
x'= a'b'+ a'c + bb'+ bc + c'b'+ c'c
x'= a'b'+ a'c + bc + c'b'
再次使用DeMorgan定理,x =(a'b'+ a'c + bc + c'b')'
x =(a + b)(a + c')(b'+ c')(c + b)