День тринадцатый. Несчастливый


Быстро пробежим по зубодробительной таблице истинности и пойдем заниматься действительно важными делами. Например, страдать фигней. Итак…

Логическая функция F задаётся выражением (x ≡ ( wy)) ∨ ((wz ) ∧ (yw)).

Дан частично заполненный фрагмент, содержащий неповторяющиеся строки таблицы истинности функции F.

Определите, какому столбцу таблицы истинности соответствует каждая из переменных x, y, z, w.

Переменная 1Переменная 2Переменная 3Переменная 4Функция
????????????F
110
10
110

В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы

А здесь уже зачем-то четыре переменных, придется писать четыре цикла. Функция опять равна 0 в таблице, так что внутри if первым делом будет not. Погнали.

Пришлось изрядно потупить над внутренним if и не поскупиться на скобочки, но все получилось. На выходе вот такое:

x y z w
0 0 0 1
0 1 0 0
0 1 0 1
0 1 1 0

Сравниваем с исходной таблицей и ничего не понимаем (( Так, стоп, в исходной в первом столбце есть 2 единицы. Значит первая переменная – w. Ну или w четвертая, тоже подходит (( А если по строкам? Первая и третья строки могут соответствовать либо набору (0, 1, 0, 1), либо набору (0, 1, 1, 0), и там и там 1ка в y, т.е y-первая переменная. z равно 1ке только в одном получившемся наборе, т.е z-в третьем столбце. w-тогда 4ая. А для x остается только второе место. Т.е. yxzw. Тот самый случай, когда мало код написать, дольше приходится результаты разбирать, чем писать.