Сдавал сессию и возможно допустил ошибки в этих примерах, ответы к сожалению где и почему не дали ибо уже всё, хочу узнать какие ответы были

Приложения:

MrSolution: Скажите, если не секрет, а в каком Вы учитесь институте?

Ответы

Ответ дал: MrSolution
1

Ответ:

(см. объяснение)

Объяснение:

Аналитическое решение:

Сначала надо посмотреть на самый правый фрагмент &z. Поскольку у нас дано F=1 для всех трех строк, то надо, чтобы z=1 для каждой строки таблицы. Это возможно только в последнем столбце, так как в других где-то да есть 0. Тогда значение переменной z и ее положение в таблице определяются однозначно.

Теперь посмотрим на оставшуюся часть выражения. Для удобства восприятия я запишу ее так:

\overline{(x\to y)\to w}

Вообще рекомендую придерживаться такого стиля в дальнейшем, так как он попросту понятнее (то есть переписать исходное выражение как \overline{(x\to y)\to w}\wedge z и смотреть на него).

Но вернемся к заданию:

Нам надо, чтобы получилось вот так:

\overline{(x\to y)\to w}=1

Поскольку тогда возможно F=1 (иначе будет 0&1=0).

Соответственно имеем переход:

(x\to y)\to w=0

А это возможно, только если будет так:

x\to y=1 и w=0

То есть получили, что w=0.

Но тогда из оставшихся столбцов подходит только первый.

Таким образом w лежит в первом столбце и он весь нулевой.

Как запомнить таблицу истинности импликации? Удобно проводить аналогию с оператором \le для 0 и 1. Тогда только 1\le0=false.

Осталось по двум столбцам посмотреть, где верно, что x\to y=1.

Несложно понять по второй строке таблицы, что x в третьем столбце, а y во втором, так как 0\le1.

Вот так заполнится таблица:

(см. программное решение вывод)

Итого ответом будет wyxz.

Программное решение:

Задачу можно решить и на компьютере. Это удобно, если надо проверить себя. Вот таким будет код на Си:

   printf("w y x z\n");

   for (int x = 0; x <= 1; ++x) {

       for (int y = 0; y <= 1; ++y) {

           for (int z = 0; z <= 1; ++z) {

               for (int w = 0; w <= 1; ++w) {

                   if (!((x <= y) <= w) && z) {

                       printf("%d %d %d %d\n", w, y, x, z);

                   }

               }

           }

       }

   }

Вот такой будет вывод:

w y x z

0 0 0 1

0 1 0 1

0 1 1 1

Задание выполнено!

Вас заинтересует