Zdarovo Tyom! dumayu chto eto mojet tebe pomochy ne smotrya na to chto eto ne programa(a prosto dumayu shto xoroshii algoritm).
p q (1) (2) (3) (4) (5) (6) (7)
0 0 .0...0...1...0...1...1...1
0 1 .0...1...1...1...0...1...0
1 0 .0...1...0...1...0...1...1
1 1 .1...1...1...0...1...0...0
p^q and (1)
pvq or (2)
p=>q implication(3)
p+q xor(4)
p<=>q equvaluant(5)
p|q not or(6)
p\q not and(7)
not x toje samoe chto(~x)
not=~
eto prosto dlya togo chto b@ t@ v dalyneyshem ponimal moi znaki .
Ya dumayu t@ znaesh svoistva bulev@x funkcii tak chto ya eto ne napishu no esli ponadobitsa mogu skazaty.
Ladno pereidu ka algoritmu ...
1.
p<=>q=(p=>q)(q=>p),
p=>q=(~p)vq
p+q=(~p)qvp(~q)
dlya togo chto b@ ustanity operacii =>,<=>,+ ostaviv tolyko and ,or,not
2.
ispolyzuem zakon@ de Morgana
~(pvq)=(~p)(~q),
~(pq)=(~p)v(~q)
dlya togo chto b@ kajdaya operaciya
otricanie otnosilasy tolyko k odnoi
peremennoi .
3.
ispolyzuem svoistvo distributivnosti i drugie svoistvo ,chtob@ poluchity normalynuyu formu.Chasto dlya poluchenie sknf(KKNDz)nujno ispolyzovaty sleduyushie svoistvo distributivnosti:
(pq)vr=(pvr)(qvr)
vse..
a tepery odin premer ...
f(p,q,r)=(~p)vq+rq(pvr)
f(p,q,r)=(~p)vq+rq(pvr)=
=(~(~pvq)rq(pvr))v(~pvq)~(rq(pvr))=
=p~qrq(pvr)v(~pvq)(~rv~qv(~p~r))=
=(~pvq)(~rvqv(~p~r))=
=(~pvq)(~rv~qv~p)(~rv~qv~r)=
=(~pvq)(~qv~r).
takim obrozom ,ya poluchil
(Kataryal Normal Dzev) funkcii f(p,q,r).
Chtob@ poluchity ee (KKNDz),nujno kajd@i dizyunkt ,v kotorom ne xvataet
kakoi-libo peremennoi ,povtority dvajd@: s etoi peremennoi i ee otricaniem:
f(p,q,r)=(~pvqvr)(~pvqv~r)(pv~qv~r)(~pv~qv~r).
Poka!