Найти тему

Решаем в Python второе задание из ЕГЭ по информатике. Таблица истинности логического выражения.

Оглавление

Задача (А. Рогов)

Логическая функция F задаётся выражением:

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

-2

В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т. д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.

Что от нас хотят

Нам дано логическое выражение, содержащее четыре переменные x, y, z, w. Эти переменные могут иметь значения 1 или 0. Результатом выполнения логического выражения (F), является результат выполнения всех логических операций указанных в выражении.

Нас просят восстановить порядок переменных x, y, z, w внутри фрагмента таблицы истинности. В этой таблице истинности результат логического выражения всегда ложь (Falce) или логический ноль.

Записываем логическое выражение в Python

Логические операторы в математике и в Python
Логические операторы в математике и в Python

Используя таблицу выше, нам нужно записать наше логическое выражение (wy)∨((¬xz)∧(¬zy)) на языке программирования Python. Причём важно знать, что порядок выполнения логических операций в Python отличается, поэтому отрицание мы всегда берём в скобки.

Получается:

-4

Перебираем все значения переменных с помощью вложенного цикла

С записью логического выражения в Python, разобрались. Теперь нам нужно в это выражение подставить все возможные сочетания переменных. Которые могут принимать значения 0 и 1.

Для этого Используем вложенный цикл for

-5

С помощью этого цикла мы проходимся по всем значениям x, y, z, w. Точно так же, как если бы мы составляли таблицу истинности.

Для наглядности можно добавить в тело цикла print и вывести результат на экран
Для наглядности можно добавить в тело цикла print и вывести результат на экран
-7

Используем оператор условия if для проверки результата логического выражения

Теперь логическое выражение у нас есть. Переменные перебирать мы научились. Нам нужно связать переменные и логическое выражение, так чтобы они подставлялись в него. Причём нас интересуют только те случаи, в которых логическое выражение равно нулю из условия задачи.

Так и запишем в теле цикла if(если) дальше наше выражение равно нулю

Обратите внимание, что всё выражение для сравнения с нулём мы берём в скобки
Обратите внимание, что всё выражение для сравнения с нулём мы берём в скобки

По сути всё готово, остаётся только вывести результат на экран.

Выводим результат на экран в удобном для нас формате

Нам нужно вывести на экран значения x, y, z, w при которых логическое значение равно нулю. Так и напишем

print(x, y, z, w, 0).

-9

Ноль писать в конце не обязательно, мы его пишем, для того чтобы максимально приблизить запись к фрагменту таблицы. Поэтому предлагаю ещё в самом начале добавить шапку где будет видно обозначения переменных: print('x y z w F')

-10

Сопоставляем результат программы с таблицей истинности из задачи

Результат программы в Python
Результат программы в Python
Фрагмент таблицы из задачи
Фрагмент таблицы из задачи

Так как только переменная z, во всех случаях принимает значение ноль, мы можем смело сказать что в таблице она будет в четвёртом столбике. Просто потому что в остальных столбцах уже есть единицы.

-13

Дальше обратимся внимание на то что у переменных X и Y по одной единице, соответственно они не могут быть в третьем столбике. Значит там мы смело ставим W.

-14

Остались только Х и У. И можно заметить, что при У=1, Z и W=0. Значит У будет в первом столбце, а Х во втором.

-15

Ответ: yxwz

По сути сама программа на Python, для других подобных задач будет точно такой же. Меняться будет только само логическое выражение. И если в таблице в столбике F будут единицы(True) , а не нули(Falce), то сравнивать это логическое выражение мы будем с 1.

Ставьте лайки и подписывайтесь на канал.

Наука
7 млн интересуются