2

2 задание ЕГЭ информатика

Таблицы истинности

1 балл ≈ 3 мин уровень Б

Задание 2 – дана логическая функция F от четырёх переменных и фрагмент таблицы истинности с пропусками; столбцы не подписаны. Нужно определить, какой переменной соответствует каждый столбец. 1 балл. Надёжнее всего решать перебором на Python.

Обозначения в Python

ЛогикаPython
¬xnot x
x ∧ yx and y
x ∨ yx or y
x → y(not x) or y, или x <= y
x ≡ yx == y
¬(x ≡ y) (исключающее ИЛИ)x != y

Алгоритм

  1. Запиши функцию F на Python. Расставь скобки так же, как в условии.
  2. Перебери все заполнения пропусков (product) и все перестановки переменных по столбцам (permutations).
  3. Строки фрагмента должны быть различными – это условие тоже проверяй.
  4. Выведи перестановку, при которой все строки дают нужное значение F.

Разобранный пример. F = (x → y) ∧ ¬(z ≡ w) ∧ (x ∨ z), во всех трёх строках фрагмента F = 1. Строки (пропуск – None): (1, 1, 0, ?), (0, 0, 1, 1), (?, 1, ?, 1).

from itertools import product, permutations

def F(x, y, z, w):
    return ((not x) or y) and (z != w) and (x or z)

for a, b, c in product([0, 1], repeat=3):
    table = [(1, 1, 0, a), (0, 0, 1, 1), (b, 1, c, 1)]
    if len(set(table)) != len(table):
        continue
    for p in permutations("xyzw"):
        if all(F(**dict(zip(p, row))) for row in table):
            print("".join(p))

Программа выведет wxzy – это и есть ответ (если строка повторяется несколько раз, ответ всё равно один).

Ловушки: если в таблице F = 0, проверяй not F(...); забытые скобки при импликации – приоритет not выше and, and выше or; повторяющиеся строки фрагмента запрещены условием.

На экзамене
  • Импликацию пиши как (not a) or b в скобках – так не ошибёшься с приоритетом.
  • Количество пропусков = repeat в product: посчитай их заранее.
  • Если программа ничего не вывела – проверь, правильно ли перенесены строки таблицы и значение F.

Разобранные задания 2 из открытого банка ФИПИ

Пример 1 · код ФИПИ 04F474

Логическая функция F задаётся выражением ¬x \/ y \/ (¬z /\ w).

На рисунке приведён фрагмент таблицы истинности функции F, содержащий все наборы аргументов, при которых функция F ложна.

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

Переменная 1

Переменная 2

Переменная 3

Переменная 4

Функция

???

???

???

???

F

0

0

0

1

0

0

1

0

1

0

1

1

0

1

0

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

Пример. Если бы функция была задана выражением ¬x \/ y, зависящим
от двух переменных: x и y, и был приведён фрагмент её таблицы истинности, содержащий все наборы аргументов, при которых функция истинна.

Переменная 1

Переменная 2

Функция

???

???

F

0

0

1

1

0

1

1

1

1

Тогда первому столбцу соответствовала бы переменная y, а второму
столбцу –  переменная x. В ответе следовало бы написать: yx.

Показать ответ и решение

Ответ: wzyx

F=0 ⇔ x=1, y=0, не (z=0, w=1). Перебор перестановок – wzyx.

Пример 2 · код ФИПИ A5D159

Миша заполнял таблицу истинности логической функции F

((z → x) → (x ≡ y)) \/ ¬ w,

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

F

0

1

0

0

0

0

0

1

1

0

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

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

Пример. Функция задана выражением ¬x \/ y, зависящим от двух переменных, а фрагмент таблицы имеет следующий вид.

F

0

1

0

В этом случае первому столбцу соответствует переменная y, а второму столбцу – переменная x. В ответе следует написать: yx.

Показать ответ и решение

Ответ: yxwz

F = 0 при w=1 и (z→x)∧(x≠y).

Перебор перестановок столбцов с заполнением пропусков даёт yxwz.

Пример 3 · код ФИПИ DC218E

Миша заполнял таблицу истинности функции (¬x \/ ¬y) /\ ¬(x≡z) /\ w, но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав, какому столбцу таблицы соответствует каждая из переменных w, x, y, z.

(¬x \/ ¬y) /\ ¬(x≡z) /\ w

0

1

1

0

1

0

1

1

0

0

1

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

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

Пример. Функция задана выражением ¬x \/ y, зависящим от двух переменных, а фрагмент таблицы имеет следующий вид.

¬x \/ y

0

1

0

В этом случае первому столбцу соответствует переменная y, а второму столбцу –  переменная x. В ответе следует написать yx.

Показать ответ и решение

Ответ: xwzy

F=1 требует w=1, x≠z, ¬(x∧y).

Перебор расстановок с достройкой пустых клеток даёт единственный вариант xwzy.

Частые вопросы о задании 2

Сколько баллов даёт задание 2 ЕГЭ по информатике?

Максимум – 1 первичный балл. Норма времени на экзамене – около 3 мин. Уровень сложности – Б.

Что проверяет задание 2?

Задание 2 – дана логическая функция F от четырёх переменных и фрагмент таблицы истинности с пропусками; столбцы не подписаны. Нужно определить, какой переменной соответствует каждый столбец. 1 балл. Надёжнее всего решать перебором на Python.

Как подготовиться к заданию 2?

Прочитайте теорию выше: алгоритм, нужные факты и ловушки. Затем решите подход из 10 заданий с автопроверкой и разбором – первые без регистрации – и вернитесь к ошибкам. В пробниках Сотки номер встречается в полных вариантах ФИПИ с подсчётом баллов.

Упражнения к заданию 2

10 заданий подряд с проверкой и разбором · первые 7 – без регистрации