Можно перебрать все возможные значения x,y и z и подобрать "на глаз" подходящую функцию.
Можно воспользоваться программами, которые подбирают функции по множеству данных. Например, программа Easy NP находит функции
z Xor y==>y Xor x
(y<=>z)Or(z<=>x)
Текст программы следующий:
Код:
Func f(x As Boolean, y As Boolean, z As Boolean) As Boolean =
(x <=> y) And (y Or z) ==> (z And x)
Func fxyz(x As Boolean, y As Boolean, z As Boolean) As Boolean
Operators {"Not 1", "Or 2", "And 2", "==> 2", "<=> 2", "Xor 2"}
Var Desc =
Abs(fxyz(0,0,0)-f(0,0,0))+
Abs(fxyz(0,0,1)-f(0,0,1))+
Abs(fxyz(0,1,0)-f(0,1,0))+
Abs(fxyz(0,1,1)-f(0,1,1))+
Abs(fxyz(1,0,0)-f(1,0,0))+
Abs(fxyz(1,0,1)-f(1,0,1))+
Abs(fxyz(1,1,0)-f(1,1,0))+
Abs(fxyz(1,1,1)-f(1,1,1))
Con Opt As
Minimize((0.1+Desc)*Exp(0.01*SizeOf(fxyz)))
Зная ответ, проще подобрать равносильные преобразования...