Задание 2 ЕГЭ по информатике: таблица истинности логической функции

Задание 2 ЕГЭ по информатике даёт логическую функцию от четырёх переменных и фрагмент её таблицы истинности без подписей столбцов. Нужно определить, какой переменной соответствует каждый столбец: вручную через свойства функции или перебором на Python.

Как решать

В условии дано выражение, например (w → y) ∧ ¬(x ≡ z), и три различные строки таблицы истинности. Часть клеток пустая, столбцы не подписаны. В ответе записывают буквы в том порядке, в каком идут их столбцы.

Шаг 1. Посмотрите на значение F во фрагменте. Если F — конъюнкция нескольких скобок и во всех строках F = 1, истинна каждая скобка. Если F — дизъюнкция и во всех строках F = 0, ложна каждая скобка. Из этого сразу видны значения отдельных переменных.

Шаг 2. Выпишите все наборы значений (w, x, y, z), на которых F принимает нужное значение. Когда F = 1 для конъюнкции или F = 0 для дизъюнкции, таких наборов обычно немного — от трёх до шести.

Шаг 3. Сравните столбцы фрагмента с выписанными наборами. Помогают простые признаки: переменная, равная 0 во всех наборах, может стоять только в столбце без единиц; две переменные, которые всегда различны, занимают два столбца, где ни в одной строке нет одинаковых известных значений.

Шаг 4. Проверьте найденный порядок на каждой строке фрагмента и убедитесь, что пустые клетки можно заполнить так, чтобы строки не совпали.

Для проверки на Python запишите функцию через not, and, or: импликацию A → B как (not A) or B, тождество A ≡ B как A == B. Программа перебирает 24 порядка переменных и все способы заполнить пустые клетки. Такую программу пишут за 3–4 минуты, если ручной разбор не сходится.

Примеры с решением

Пример 1

Логическая функция F задана выражением (w → y) ∧ ¬(x ≡ z) ∧ (y ∨ x). Дан фрагмент её таблицы истинности из трёх различных строк; пустые клетки обозначены точкой:

?  ?  ?  ?  F
0  1  0  .  1
.  1  1  .  1
0  0  .  0  1

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

Проверка ответа на Python

from itertools import permutations, product


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


# Фрагмент таблицы: None — пустая клетка, последнее число в строке — значение F
rows = [
    [0, 1, 0, None, 1],
    [None, 1, 1, None, 1],
    [0, 0, None, 0, 1],
]

answers = []
blanks = sum(row[:4].count(None) for row in rows)
for order in permutations("wxyz"):
    for fill in product([0, 1], repeat=blanks):
        it = iter(fill)
        full = [[next(it) if c is None else c for c in row[:4]] for row in rows]
        if len(set(map(tuple, full))) < len(full):
            continue  # строки таблицы истинности не повторяются
        if all(bool(F(**dict(zip(order, vals)))) == bool(row[4]) for vals, row in zip(full, rows)):
            answers.append("".join(order))
            break

print(*answers)

Ответ: wyxz

F = 1 только на пяти наборах (w, x, y, z): 0100, 0110, 1110, 0011, 1011. В них x и z всегда различны.

Ищем два столбца, в которых ни в одной строке нет одинаковых известных значений. Подходят только столбцы 3 и 4, в остальных парах совпадение есть: столбцы 1 и 2 в третьей строке (0 и 0), столбцы 2 и 3 во второй строке (1 и 1) и так далее. Значит, x и z — столбцы 3 и 4, а w и y — столбцы 1 и 2.

Если бы w был столбцом 2, в первой строке получилось бы w = 1 и y = 0, а импликация w → y при этом ложна. Поэтому w — столбец 1, y — столбец 2. В третьей строке y = 0, значит x = 1: x стоит в столбце 3, где клетка пустая, а z — в столбце 4. Ответ: wyxz.

Пример 2

Логическая функция F задана выражением (x ∧ ¬y) ∨ (y ≡ z) ∨ w. Дан фрагмент её таблицы истинности из трёх различных строк; пустые клетки обозначены точкой:

?  ?  ?  ?  F
0  0  .  1  0
1  .  1  0  0
1  .  0  .  0

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

Проверка ответа на Python

from itertools import permutations, product


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


# Фрагмент таблицы: None — пустая клетка, последнее число в строке — значение F
rows = [
    [0, 0, None, 1, 0],
    [1, None, 1, 0, 0],
    [1, None, 0, None, 0],
]

answers = []
blanks = sum(row[:4].count(None) for row in rows)
for order in permutations("wxyz"):
    for fill in product([0, 1], repeat=blanks):
        it = iter(fill)
        full = [[next(it) if c is None else c for c in row[:4]] for row in rows]
        if len(set(map(tuple, full))) < len(full):
            continue  # строки таблицы истинности не повторяются
        if all(bool(F(**dict(zip(order, vals)))) == bool(row[4]) for vals, row in zip(full, rows)):
            answers.append("".join(order))
            break

print(*answers)

Ответ: ywxz

F — дизъюнкция, и во всех строках F = 0, поэтому ложны все три слагаемых: w = 0, y и z различны, x ∧ ¬y ложно. Таких наборов (w, x, y, z) ровно три: 0001, 0010, 0110. Фрагмент содержит все три.

Переменная w равна 0 во всех строках. Единиц нет только во втором столбце, значит w — столбец 2.

y и z всегда различны. Из оставшихся столбцов это возможно для пар 1 и 4 и 3 и 4 (в паре 1 и 3 во второй строке стоят две единицы). Если бы y и z занимали столбцы 3 и 4, в столбце 1 стояла бы x со значениями 0, 1, 1, но x равна 1 только в одном наборе. Значит, y и z — столбцы 1 и 4, x — столбец 3.

y равна 1 в двух наборах, z — в одном. В столбце 1 значения 0, 1, 1, поэтому y — столбец 1, z — столбец 4. Ответ: ywxz.

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

Потренироваться на тренажёре

Частые вопросы

Как решать задание 2 ЕГЭ по информатике на Python?

Запишите F как функцию, переберите порядок переменных через itertools.permutations и значения пустых клеток через itertools.product. Для каждого варианта проверьте все строки фрагмента. Полный код есть в примерах на этой странице.

Что означает знак ≡ в задании 2?

Это тождество (эквивалентность): A ≡ B истинно, когда значения A и B совпадают. На Python его записывают как A == B.

Сколько баллов дают за задание 2?

1 первичный балл. Спецификация 2027 года отводит на это задание около 3 минут.

Официальные материалы

Другие задания

Все задания и структура экзамена — на странице ЕГЭ по информатике. Соседние разборы: задание 1 и задание 3.

Описание задания сверено 28 сентября 2026 года со спецификацией 2027 года (документы 2027 года). Примеры составлены нами по структуре демоверсии, каждое решение запущено, и напечатанный им ответ совпадает с ответом на странице. Кодолимп не связан с разработчиками экзамена. Заметили неточность — напишите нам.