Для собеседования у нас придумали задачку: реализовать XOR через AND, OR и NOT. В связи с тем, что я подзабыл булеву алгебру, я решал ее минут 10, включая составление проверочной таблицы.
Для наглядности предлагается использовать блоки с двумя входами и одним выходом для AND и OR, или один вход и один выход для NOT. У меня получилось 4 блока.
А вам слабо?
Неужели есть варианты с большим количеством блоков :)
ОтветитьУдалитьcasper
Ну... Народ обычно из пяти собирает.
ОтветитьУдалитьСразу получилось из 4, и честно говоря не знаю как сделать из 5 :)
ОтветитьУдалить( a & !b ) || ( !a & b )
ОтветитьУдалитьу меня получилось следующее
ОтветитьУдалить( !(a&b) ) & (a||b)
или
!( (a&b) || ( !(a||b) ) )
Первый вариант - из 4,
ОтветитьУдалитьа второй - из 5.