Задание 2 ЕГЭ по информатике 2027: таблицы истинности
- Раздел
- Теоретические основы информатики
- Максимальный балл
- 1 балл
- Уровень
- базовый
- Что проверяет
- Умение строить таблицы истинности и логические схемы
- Что нужно сделать
- По фрагменту таблицы истинности логической функции определить, какой переменной соответствует каждый столбец.
- Как записать ответ
- латинские буквы подряд, без пробелов и разделителей
- Время
- Около 3 минут по обобщённому плану ФИПИ
- Элемент кодификатора
- 2.7
- Компьютер
- Специальное ПО по плану ФИПИ не нужно: задание решают рассуждением, программа — для проверки
- Файл к заданию
- Нет — все данные в условии
- В 2026 году
- Тоже задание 2
Задание 2 ЕГЭ по информатике 2027 года проверяет, по формулировке обобщённого плана ФИПИ, «умение строить таблицы истинности и логические схемы». В КИМ 2026 года под этим номером было то же задание: смена тем 2027 года коснулась только заданий 10, 13 и 23.
Дана логическая функция от трёх или четырёх переменных и фрагмент её таблицы истинности: столбцы не подписаны, часть клеток пуста. Нужно определить, какая переменная стоит в каждом столбце, и выписать буквы по порядку столбцов, слитно.
Задание базового уровня, файл и специализированное ПО не нужны; около 3 минут и 1 балл. Средний процент выполнения в 2026 году — 78,5. Ниже — четыре типа задания с разбором и программой на Python.
Тренажёр задания 2
Десять заданий номера 2 из банка тренажёра — с файлами, как на станции КЕГЭ. Решайте в песочнице Python прямо на странице или у себя; ответ проверяется по ключу, после проверки — верный ответ, разбор и решение на Python, а при ошибке — разбор от ИИ. Кнопка «Ещё 5 таких» у типа задания ниже даёт задания одного типа.
Задание 2 вместе с остальными — в вариантах целиком.
Типы задания 2 с решением
Фрагмент таблицы истинности с четырьмя переменными
Функция F = (¬z ∧ w) ∨ (x → y); дан фрагмент из трёх различных строк таблицы, «?» — пустая клетка.
? 0 0 1 0 ? 0 ? ? 0 ? 0 ? 0 0
Ответ — буквы w, x, y, z в порядке столбцов, без разделителей.
1. Во всех трёх строках F = 0, значит, ложны оба слагаемых: x = 1, y = 0, а первое обнуляется при z = 1 или w = 0. Наборы (w, x, y, z): (0, 1, 0, 0), (0, 1, 0, 1), (1, 1, 0, 1). 2. Столбец 0, 0, 0 — это y: только у y нуль во всех строках. 3. Если четвёртый столбец — w, первой строке отвечал бы набор (1, 1, 0, 1), где в третьем столбце 1, а фрагмент требует 0. Значит, четвёртый — z, третьей строке отвечает (0, 1, 0, 0), первый столбец — x, третий — w.
На примере: ответ xywz.
from itertools import permutations
def f(w, x, y, z):
# F = (¬z ∧ w) ∨ (x → y); импликация ложна только при x = 1 и y = 0
first = 1 if (z == 0 and w == 1) else 0
second = 0 if (x == 1 and y == 0) else 1
return first or second
# все строки таблицы истинности: значения переменных и функции
rows = []
for w in (0, 1):
for x in (0, 1):
for y in (0, 1):
for z in (0, 1):
rows.append({'w': w, 'x': x, 'y': y, 'z': z, 'F': f(w, x, y, z)})
# фрагмент из условия: None — пустая клетка, последний столбец — F
fragment = [
[None, 0, 0, 1, 0],
[None, 0, None, None, 0],
[None, 0, None, 0, 0],
]
def fits(columns, order):
# сходятся ли заполненные клетки фрагмента с выбранными строками
for frag_row, row in zip(fragment, order):
values = [row[c] for c in columns] + [row['F']]
if any(v is not None and v != values[j] for j, v in enumerate(frag_row)):
return False
return True
for columns in permutations('wxyz'):
if any(fits(columns, order) for order in permutations(rows, len(fragment))):
print(''.join(columns))
break
Ответ: xywz
Фрагмент таблицы истинности с тремя переменными
Функция F = ((x ∨ y) ≡ ¬y) ∨ (¬x ≡ (x ∨ z)) от трёх переменных; фрагмент из трёх различных строк.
? 0 1 0 0 1 ? 0 ? 0 ? 0
Ответ — буквы x, y, z в порядке столбцов.
1. Все строки имеют F = 0, значит, ложны оба сравнения; подходят наборы (x, y, z): (0, 0, 0), (0, 1, 0), (1, 1, 0), (1, 1, 1). 2. Единица во втором столбце одна: это не y (у y один нуль) и не z (тогда второй строке отвечал бы набор (1, 1, 1) с единицей в первом столбце). Второй столбец — x. 3. Первой строке нужна единица в третьем столбце при x = 0: подходит набор (0, 1, 0), где третий столбец — y, первый — z.
На примере: ответ zxy.
from itertools import permutations
def f(x, y, z):
# F = ((x ∨ y) ≡ ¬y) ∨ (¬x ≡ (x ∨ z))
left = ((x or y) == (1 - y))
right = ((1 - x) == (x or z))
return int(left) or int(right)
rows = []
for x in (0, 1):
for y in (0, 1):
for z in (0, 1):
rows.append({'x': x, 'y': y, 'z': z, 'F': f(x, y, z)})
# фрагмент из условия: None — пустая клетка, последний столбец — F
fragment = [
[None, 0, 1, 0],
[0, 1, None, 0],
[None, 0, None, 0],
]
def fits(columns, order):
for frag_row, row in zip(fragment, order):
values = [row[c] for c in columns] + [row['F']]
if any(v is not None and v != values[j] for j, v in enumerate(frag_row)):
return False
return True
for columns in permutations('xyz'):
if any(fits(columns, order) for order in permutations(rows, len(fragment))):
print(''.join(columns))
break
Ответ: zxy
Все строки таблицы, в которых F = 0
Функция F = (¬z → ¬y) → (x ∨ ¬w); фрагмент — все строки таблицы, где F = 0.
0 ? 1 ? 0 0 ? 1 0 0 1 1 ? ? 0
Ответ — буквы w, x, y, z в порядке столбцов.
1. Внешняя импликация ложна, когда посылка истинна, а следствие ложно: x = 0, w = 1 и при этом неверно, что z = 0 и y = 1. Подходят наборы (w, x, y, z): (1, 0, 0, 0), (1, 0, 0, 1), (1, 0, 1, 1). 2. В первом столбце стоят 0, 0, 1 — так выглядит только столбец y: у w три единицы, у x три нуля. 3. Первые две строки начинаются с нуля, значит, y = 0; в этих наборах z различается (0 и 1), а третий столбец одинаковый (1 и 1). Поэтому третий столбец — w, второй — z, четвёртый — x.
На примере: второй строке отвечает набор (1, 0, 0, 0), первой — (1, 0, 0, 1), третьей — (1, 0, 1, 1). Ответ yzwx.
from itertools import permutations
def f(w, x, y, z):
# F = (¬z → ¬y) → (x ∨ ¬w)
premise = 0 if (z == 0 and y == 1) else 1 # ¬z → ¬y ложно при z = 0 и y = 1
consequence = 1 if (x == 1 or w == 0) else 0
# импликация ложна, только если посылка истинна, а следствие ложно
return int((1 - premise) or consequence)
rows = []
for w in (0, 1):
for x in (0, 1):
for y in (0, 1):
for z in (0, 1):
rows.append({'w': w, 'x': x, 'y': y, 'z': z, 'F': f(w, x, y, z)})
# фрагмент из условия: None — пустая клетка, последний столбец — F
fragment = [
[0, None, 1, None, 0],
[0, None, 1, 0, 0],
[1, 1, None, None, 0],
]
def fits(columns, order):
for frag_row, row in zip(fragment, order):
values = [row[c] for c in columns] + [row['F']]
if any(v is not None and v != values[j] for j, v in enumerate(frag_row)):
return False
return True
for columns in permutations('wxyz'):
if any(fits(columns, order) for order in permutations(rows, len(fragment))):
print(''.join(columns))
break
Ответ: yzwx
Все строки таблицы, в которых F = 1
Функция F = ((y ∧ w) ∧ (¬z → ¬w)) ≡ ((y → x) → (y → z)); фрагмент — все строки таблицы, где F = 1.
1 ? ? ? 1 1 1 0 ? 1 0 1 0 ? 1 1 ? 1 0 1
Ответ — буквы w, x, y, z в порядке столбцов.
1. Наборы с F = 1: (w, x, y, z) — (0, 1, 1, 0), (1, 0, 1, 1), (1, 1, 1, 0), (1, 1, 1, 1). 2. Столбец из одних единиц — второй, это y. 3. Первый столбец равен 0 только в третьей строке, а третий там тоже 0. Если первый — x, этой строке отвечает набор (1, 0, 1, 1) с единицей в третьем столбце — противоречие. Значит, первый — w, строка отвечает (0, 1, 1, 0), третий столбец — z, четвёртый — x.
На примере: ответ wyzx.
from itertools import permutations
def f(w, x, y, z):
# F = ((y ∧ w) ∧ (¬z → ¬w)) ≡ ((y → x) → (y → z))
left = (y == 1 and w == 1 and (z == 1 or w == 0))
imp1 = (y == 0 or x == 1) # y → x
imp2 = (y == 0 or z == 1) # y → z
right = (not imp1) or imp2
return int(left == right)
rows = []
for w in (0, 1):
for x in (0, 1):
for y in (0, 1):
for z in (0, 1):
rows.append({'w': w, 'x': x, 'y': y, 'z': z, 'F': f(w, x, y, z)})
# фрагмент из условия: None — пустая клетка, последний столбец — F
fragment = [
[1, None, None, None, 1],
[1, 1, 0, None, 1],
[0, 1, 0, None, 1],
[1, None, 1, 0, 1],
]
def fits(columns, order):
for frag_row, row in zip(fragment, order):
values = [row[c] for c in columns] + [row['F']]
if any(v is not None and v != values[j] for j, v in enumerate(frag_row)):
return False
return True
for columns in permutations('wxyz'):
if any(fits(columns, order) for order in permutations(rows, len(fragment))):
print(''.join(columns))
break
Ответ: wyzx
Шаблон кода на Python
Таблица истинности: какой столбец какой переменной
Переписываете функцию из условия и фрагмент таблицы, программа перебирает порядок столбцов. Импликация a → b — это a <= b, эквивалентность — a == b.
from itertools import permutations, product
def F(x, y, z, w):
return ((x <= y) and not z) or w # (x → y) ∧ ¬z ∨ w
# Фрагмент таблицы из условия; None — пустая клетка
frag = [
[0, None, None, None],
[0, 1, None, 0],
[1, 0, None, 1],
]
value = 0 # значение F в строках фрагмента
rows = [r for r in product((0, 1), repeat=4) if F(*r) == value]
for order in permutations('xyzw'):
for chosen in permutations(rows, len(frag)):
if all(v is None or row['xyzw'.index(order[j])] == v
for f_row, row in zip(frag, chosen)
for j, v in enumerate(f_row)):
print(''.join(order))
breakyxwz
Как выполнять задание
- Выпишите функцию и считайте её по частям: сначала отрицания, затем конъюнкции и дизъюнкции, последними — импликации и тождества.
- Посмотрите на столбец F: все нули означают, что строки взяты из строк с F = 0, все единицы — из строк с F = 1; «всех строк, в которых F = 0» значит, что других таких строк нет.
- Ищите столбцы-подсказки: столбец из одних нулей или единиц выдаёт переменную, не менявшую значение.
- Проверьте расстановку, подставив буквы в функцию.
- Ответ — строчные латинские буквы подряд, без пробелов и запятых.
Что нужно знать
- Операции. ¬A — отрицание; A ∧ B истинна, когда истинны оба множителя; A ∨ B ложна, когда ложны оба слагаемых; A → B ложна только при A = 1 и B = 0; A ≡ B истинна при совпадающих значениях.
- Приоритет по соглашениям ФИПИ: «инверсия (отрицание), конъюнкция (логическое умножение), дизъюнкция (логическое сложение), импликация (следование), тождество».
- Равносильные записи: A → B = ¬A ∨ B, A ≡ B = (A ∧ B) ∨ (¬A ∧ ¬B).
- Размер таблицы: у функции от n переменных 2n строк: от трёх — 8 наборов, от четырёх — 16.
Разобрать задание в формате станции можно в демоверсии КЕГЭ 2027 на сайте.
Как оценивается
Проверка автоматическая, по ключу: ответ должен быть записан в форме из условия и полностью совпасть с эталоном. Код и черновики не проверяют — значение имеет только ответ. За верный ответ — 1 балл, частичного балла нет.
Критерии всех заданий экзамена — на странице критериев ЕГЭ.
Разбор задания демоверсии 2027
В демоверсии 2027 года дана функция ((x ≡ ¬y) → ¬(w → x)) ∨ ¬z и фрагмент из трёх строк с F = 0; ключ ФИПИ — yxzw.
Дизъюнкция ложна, только если z = 1 и первое слагаемое ложно. Столбец z состоит из одних единиц, а нулей нет только в третьем столбце — это z. Первое слагаемое ложно при x ≡ ¬y и истинной импликации w → x; подходят наборы (w, x, y): (0, 0, 1), (0, 1, 0), (1, 1, 0).
Четвёртый столбец равен 0 в первых двух строках: под это подходят w со значениями 0, 0, 1 и y со значениями 1, 0, 0. Если это y, две строки — (0, 1, 0, 1) и (1, 1, 0, 1) с x = 1, но во второй первый столбец равен 0 — противоречие. Значит, четвёртый столбец w, второй x, первый y; перебор 24 расстановок даёт единственный вариант — yxzw.
Типичные ошибки
Ответ записан в порядке переменных, а не столбцов
Спрашивают столбцы: первая буква — переменная первого столбца. Если первый столбец занят z, ответ начинается с z.
Импликация посчитана как конъюнкция
A → B ложна ровно при A = 1 и B = 0; равносильная запись — (не A) или B.
Проверена только одна строка фрагмента
Одна строка редко оставляет единственный вариант: столбцы определяются, когда сходятся все строки фрагмента.
Фрагмент считают идущими подряд строками
«Фрагмент из трёх различных строк» — это любые строки с нужным значением F, а не три подряд.
Неверная форма записи ответа
Буквы пишут строчными латинскими, подряд, без пробелов и запятых: запись с пробелами не зачтётся.
Вопросы и ответы
Как решать задание 2 — вручную или программой?
И так, и так. Вручную функцию разбирают по частям и находят все наборы с нужным значением F. Программа перебирает все наборы значений и все расстановки переменных: для четырёх переменных это 24 = 16 наборов и 24 расстановки, для трёх — 8 и 6. Ею удобно проверить ответ.
Есть ли шаблон на Python для задания 2?
Да: перебор перестановок переменных по столбцам с подстановкой строк фрагмента. В заготовку подставляют свою функцию и свой фрагмент.
Нужен ли компьютер для задания 2?
Нет. Специализированное ПО по обобщённому плану ФИПИ не требуется, файла нет: все данные в условии.
Сколько баллов даёт задание 2 и сколько на него времени?
1 балл, частичного балла нет. По обобщённому плану ФИПИ — около 3 минут, уровень базовый.
Что изменилось в задании 2 в 2027 году?
Ничего: тема та же, что в 2026 году, изменений структуры КИМ нет.
Другие задания раздела «Теоретические основы информатики»
- Задание 1схема дорог и таблица расстояний · до 1 балла
- Задание 4условие Фано и кодирование · до 1 балла
- Задание 7объём изображения и звука · до 1 балла
- Задание 8слова и комбинаторика · до 1 балла
- Задание 11объём сообщения и пароли · до 1 балла
- Задание 14системы счисления · до 1 балла
- Задание 15логические выражения · до 1 балла
- Задание 19теория игр: выигрыш первым ходом · до 1 балла
- Задание 20теория игр: выигрыш вторым ходом · до 1 балла
- Задание 21теория игр: дерево игры · до 1 балла
- Задание 23кратчайший путь в графе · до 1 балла
По демоверсии, спецификации и кодификатору ФИПИ 2027
Обновлено: