Задание 2 ЕГЭ по информатике: таблица истинности логической функции
Задание 2 ЕГЭ по информатике даёт логическую функцию от четырёх переменных и фрагмент её таблицы истинности без подписей столбцов. Нужно определить, какой переменной соответствует каждый столбец: вручную через свойства функции или перебором на Python.
- Что проверяет: Умение строить таблицы истинности и логические схемы. Базовый уровень сложности.
- Баллы: 1 первичный балл
- Формат ответа: Четыре буквы w, x, y, z подряд без пробелов и запятых в порядке столбцов таблицы, например zyxw.
- Программа: задание решают без программы, ответ можно проверить на Python
- Уровень сложности: базовый
- Время: около 3 минут по спецификации
- Кодификатор: 2.7 — алгебра логики: логические операции, таблицы истинности, логические выражения; Требование 2.6 — строить логическое выражение по таблице истинности, исследовать область истинности высказывания
Как решать
В условии дано выражение, например (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.
Типичные ошибки
- Заполняют пустые клетки так, что две строки фрагмента совпадают. В условии сказано, что строки различны, и это часто отсекает лишние варианты.
- Путают приоритет операций: сначала выполняется отрицание, затем конъюнкция, дизъюнкция, импликация и в конце тождество.
- Неверно записывают импликацию в программе. A → B на Python — (not A) or B; запись A <= B тоже работает для значений 0 и 1, но её легко перепутать.
- Записывают ответ с пробелами или запятыми. Нужны четыре буквы подряд.
Потренироваться на тренажёре
- Калькулятор логики: таблица истинности выражения
- Задачи: полный перебор вариантов
- Условия в Python: задачи с проверкой
- Тренажёр Python
Частые вопросы
Как решать задание 2 ЕГЭ по информатике на Python?
Запишите F как функцию, переберите порядок переменных через itertools.permutations и значения пустых клеток через itertools.product. Для каждого варианта проверьте все строки фрагмента. Полный код есть в примерах на этой странице.
Что означает знак ≡ в задании 2?
Это тождество (эквивалентность): A ≡ B истинно, когда значения A и B совпадают. На Python его записывают как A == B.
Сколько баллов дают за задание 2?
1 первичный балл. Спецификация 2027 года отводит на это задание около 3 минут.
Официальные материалы
- Демоверсия, спецификация и кодификатор ЕГЭ 2027 по информатике (архив, проект)
- Демоверсии, спецификации и кодификаторы ЕГЭ по всем предметам
- Открытый банк заданий ЕГЭ
Другие задания
Все задания и структура экзамена — на странице ЕГЭ по информатике. Соседние разборы: задание 1 и задание 3.
Описание задания сверено 28 сентября 2026 года со спецификацией 2027 года (документы 2027 года). Примеры составлены нами по структуре демоверсии, каждое решение запущено, и напечатанный им ответ совпадает с ответом на странице. Кодолимп не связан с разработчиками экзамена. Заметили неточность — напишите нам.