8 мин чтения

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

ЕГЭ по информатике 2026, задание 2: таблицы истинности

Задание 2 — базовое, 1 балл. Нужно сопоставить логические выражения столбцам таблицы истинности и записать порядок переменных, например xywz. Файла нет.

ФИПИ отдельно предупреждает: заполненная таблица не должна содержать одинаковых строк. Если при подстановке получились две одинаковые строки, переменные расставлены неверно, даже если «почти всё сошлось».

Конспект

Операции, которые встречаются постоянно:

  • конъюнкция A ∧ B — истина только когда оба истинны;
  • дизъюнкция A ∨ B — ложна только когда оба ложны;
  • отрицание ¬A;
  • импликация A → B ложна только на наборе «A истина, B ложь». В программе это not A or B;
  • эквиваленция A ≡ B истинна, когда значения равны.

Порядок работы:

1. Выпишите, сколько переменных. Четыре переменные — 16 наборов, в фрагменте обычно 3–5 строк.

2. Найдите столбец с самым узнаваемым узором. Например, функция, истинная ровно на одном наборе, часто содержит конъюнкцию нескольких литералов.

3. Поставьте гипотезу о соответствии столбцов выражениям. Перебирайте перестановки переменных, а не подбирайте «на глаз» с середины.

4. Проверьте каждую данную строку. Ошибка в одной клетке — гипотеза неверна.

5. В конце убедитесь, что в полной таблице нет совпадающих строк, если условие это требует.

Ответ пишут без пробелов и знаков препинания, буквами именно в том порядке, который указан в задании.

Шаблон на Python

Функция ниже перебирает, какая переменная в каком столбце. Замените exprs на выражения из условия. row — известные значения функции по столбцам.

from itertools import permutations, product

vars_ = ["x", "y", "z", "w"]

def F1(x, y, z, w):
    return int((not x or y) and (not y or z))

def F2(x, y, z, w):
    return int(x == w)

# фрагмент: списки значений переменных неизвестны,
# известны только столбцы F. Подставьте свои функции и строки таблицы.
known = [
    (0, 1),
    (1, 0),
    (1, 1),
]

# полный перебор наборов, если нужно построить таблицу с нуля
for values in product([0, 1], repeat=4):
    env = dict(zip(vars_, values))
    print(values, F1(**env), F2(**env))

print("--- перестановки для сопоставления столбцов ---")
for order in permutations(vars_):
    ok = True
    # сюда подставьте конкретные наборы из таблицы, когда восстановите биты
    print("проверяем порядок", "".join(order))
    if ok:
        pass

Практичнее не печатать все 16 строк, а написать функцию «подходит ли перестановка» и оставить в ответе единственную строку print("".join(order)).

Типичные ошибки

  • Путают импликацию с «или» без отрицания.
  • Игнорируют требование уникальных строк.
  • Записывают переменные не в том порядке, который просит бланк.
  • Не отличают столбец выражения от столбца переменной.

Попробуйте объяснить с Мишкой

Бесплатный ИИ-репетитор объяснит любую тему так, как вам понятно — шаг за шагом.

Начать бесплатно