7 мин чтения

Задание 2 ЕГЭ по информатике 2027 — фрагмент таблицы истинности с пустыми клетками

Разбор задания 2 ЕГЭ по информатике 2027: фрагмент из трёх различных строк с пустыми клетками, условие «разным строкам — разные наборы», разбор демо с ответом yxzw и Python-перебор.

В 2027 году задание 2 выглядит так: дана логическая функция от четырёх переменных и фрагмент её таблицы истинности из трёх различных строк, в котором часть клеток пуста. Нужно определить, какому столбцу соответствует каждая переменная, и записать буквы подряд. Так задание было устроено и в демоверсии 2026. Пустые клетки и оговорка «строки различны» — не формальность: в демоверсии ФИПИ без неё подходят два порядка, xyzw и yxzw, а с ней — только yxzw.

Ниже — условие демо, ручной разбор, Python-перебор, который печатает ответ, и список ловушек. Разбор варианта с полностью заполненным фрагментом — в статье о задании 2; логические операции и их таблицы там разобраны подробно, здесь повторяю только нужное.

Условие демоверсии 2027

Миша заполнял таблицу истинности функции

F = ((x ≡ ¬y) → ¬(w → x)) ∨ ¬z

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

Столбец 1Столбец 2Столбец 3Столбец 4F
0100
000
110

Пустая клетка означает, что значение не записано — оно может быть любым. Нужно определить, какому столбцу соответствует каждая переменная, и записать буквы в порядке столбцов. Ответ ФИПИ: yxzw.

Что даёт столбец F

Во всех трёх строках F = 0. Функция — дизъюнкция двух частей: (x ≡ ¬y) → ¬(w → x) и ¬z. Дизъюнкция равна нулю, только когда обе части равны нулю. Отсюда два условия на каждую строку фрагмента.

Часть функцииДолжна быть равнаЧто это значит для переменных
¬z0z = 1
(x ≡ ¬y) → ¬(w → x)0посылка истинна, вывод ложен: x ≡ ¬y и w → x

Импликация равна нулю в единственном случае — когда её левая часть истинна, а правая ложна. Значит, x ≡ ¬y истинно, то есть x и y различны, а ¬(w → x) ложно, то есть w → x истинно: нельзя одновременно w = 1 и x = 0.

Итого в каждой строке фрагмента: z = 1, x ≠ y, и не бывает «w = 1 при x = 0». С этими тремя правилами фрагмент разбирается руками.

Ручной разбор

Столбец z. В нём не может быть нулей — z = 1 во всех строках. Во второй строке нули стоят в столбцах 1 и 4, значит z — столбец 2 или 3. В первой строке в столбце 2 стоит 0, значит z — столбец 3. Сверь: в столбце 3 стоят 1, пусто, 1 — противоречий нет.

Переменные x и y. Остались столбцы 1, 2 и 4 для w, x, y. В первой строке в столбцах 2 и 4 стоят нули, столбец 1 пуст. x и y должны различаться, поэтому они не могут обе быть в столбцах 2 и 4: одна из них — столбец 1, где можно поставить единицу. Если x — столбец 2 (x = 0), то y — столбец 1 (y = 1), а w — столбец 4 (w = 0), и условие «не w = 1 при x = 0» выполнено. Если же y — столбец 2 (y = 0), то x — столбец 1 (x = 1), w — столбец 4: пока тоже возможно. Остаётся случай, когда в столбце 2 стоит w: тогда x и y — столбцы 1 и 4, но во второй строке в обоих нули, x = y = 0, а они должны различаться. Значит, w не в столбце 2. Два кандидата: yxzw и xyzw.

Третья строка решает. В ней столбец 2 равен 1, столбцы 1 и 4 пусты.

  • Для yxzw: x = 1 (столбец 2), значит y = 0 (столбец 1), w — любое. Строка получается y=0, x=1, z=1, w=0 или 1.
  • Для xyzw: y = 1 (столбец 2), значит x = 0 (столбец 1), а тогда w → x требует w = 0. Строка получается x=0, y=1, z=1, w=0 — ровно один набор.

Теперь вторая строка для xyzw: x = 0 (столбец 1), w = 0 (столбец 4), значит y = 1, z = 1 — набор x=0, y=1, z=1, w=0. Он совпадает с набором третьей строки. Но строки фрагмента различны по условию, а в таблице истинности каждый набор встречается один раз. Порядок xyzw отпадает.

Для yxzw всё сходится: первая строка y=1, x=0, z=1, w=0, вторая y=0, x=1, z=1, w=0, третья y=0, x=1, z=1, w=1 — три разных набора, в каждом F = 0. Ответ: yxzw.

Решение на Python

Перебор делает ту же работу без рассуждений. Клетки строки записываем строкой из цифр и знаков - для пустых; функцию переносим в Python по словарю: ¬ — not, ∧ — and, ∨ — or, A → B — (not a) or b, A ≡ B — a == b.

from itertools import product, permutations

# клетки по столбцам ("-" — пусто) и значение F в той же строке
rows = [("-010", 0), ("0--0", 0), ("-11-", 0)]

def f(w, x, y, z):
    left = (x == (not y))            # x ≡ ¬y
    right = not ((not w) or x)       # ¬(w → x)
    return ((not left) or right) or (not z)

for order in permutations("wxyz"):
    options = []
    for cells, target in rows:
        found = []
        for cols in product(range(2), repeat=4):
            v = {order[i]: cols[i] for i in range(4)}
            if int(f(v["w"], v["x"], v["y"], v["z"])) != target:
                continue
            if all(cells[i] == "-" or int(cells[i]) == cols[i] for i in range(4)):
                found.append(cols)
        options.append(found)
    fit = any(len({a, b, c}) == 3
              for a in options[0] for b in options[1] for c in options[2])
    if fit:
        print("".join(order))

Вывод на демоверсии — одна строка: yxzw. Если убрать проверку len({a, b, c}) == 3 и требовать лишь, чтобы для каждой строки нашёлся хоть один набор, напечатаются две строки — xyzw и yxzw. Это и есть второй порядок, который отсекает условие о различных строках.

Отрицание рядом с == берётся в скобки: x == (not y). Без скобок Python прочитает выражение как (x == not y) и упадёт с синтаксической ошибкой. Приоритет операций в условии: ¬ сильнее ∧, ∧ сильнее ∨, дальше → и ≡ — лишние скобки дешевле пропущенных. Другие приёмы для логики на Python собраны в подборке идиом.

Ещё один пример: когда условие о строках решает всё

Функция F = ¬(z → w) ∨ (x → y) ∨ ¬x, фрагмент из трёх различных строк, во всех строках F = 0:

Столбец 1Столбец 2Столбец 3Столбец 4F
0110
010
000

Дизъюнкция трёх частей равна нулю, когда все три части нули: ¬(z → w) = 0 даёт z → w = 1, то есть не бывает «z = 1 при w = 0»; (x → y) = 0 даёт x = 1 и y = 0; ¬x = 0 снова даёт x = 1. Итак, в каждой строке x = 1, y = 0, и нет пары «z = 1, w = 0».

Столбец x не содержит нулей — это только столбец 2, где все клетки пусты. Столбец y не содержит единиц — это столбец 1. Для z и w остались столбцы 3 и 4, и каждая строка по отдельности допускает оба варианта: yxzw и yxwz. Решает условие различных строк. При yxzw во второй строке z = 1 (столбец 3), а тогда w обязан быть 1 — и вторая строка совпадает с первой: y=0, x=1, z=1, w=1. При yxwz во второй строке w = 1, z свободно, и можно взять z = 0 — все три строки различны. Ответ: yxwz. Код из раздела выше печатает ровно эту строку, а без проверки различия — обе.

Чем фрагмент с пустыми клетками отличается от заполненного

Форма с пустыми клетками действует как минимум с демоверсии 2026 года, но в сборниках и в старых шаблонах встречается и полностью заполненный фрагмент. Разница для решения:

Фрагмент заполнен целикомФрагмент с пустыми клетками (демо 2026 и 2027)
Условие о строкахобычно не влияет на ответ«три различные строки» отсекает лишний порядок
Ручной разборпо столбцам, без вариантовиногда два кандидата, различие строк отсекает лишний
Перебор на Pythonсовпадение всех клетокпустые клетки пропускают, проверяют различие наборов

Шаблон, который требует точного совпадения всех клеток, на фрагменте с пустыми клетками вернёт пустой результат — пустая клетка со значением - никогда не равна цифре. Старый шаблон с пропуском пустых клеток, но без проверки различия строк, вернёт два ответа. Нужны обе правки.

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

Пустая клетка прочитана как ноль

В демо первая строка выглядит как «пусто, 0, 1, 0». Если считать первую клетку нулём, в строке будет три нуля, и ручной разбор пойдёт по ложному пути. Пустая клетка — неизвестное значение, и в переборе её не сравнивают.

Взят первый подходящий порядок

Перебор без проверки различия строк находит два порядка. Кто берёт первый напечатанный, получает xyzw — неверно. Проверяй, что для трёх строк подобраны три разных набора.

Перепутаны импликация и эквивалентность

A → B ложно в одном случае: A = 1, B = 0. A ≡ B истинно, когда значения совпадают. В демо обе операции рядом, и путаница в любой из них меняет условия на строки. Таблицы операций — в статье 2026 года.

Ошибка приоритета при переносе в код

not w or x — это (not w) or x, так и нужно для импликации. А вот x == not y без скобок не работает вовсе. Самое надёжное — расставить скобки вокруг каждой операции при переносе формулы.

Ответ не в том порядке

В ответ идут буквы в порядке столбцов, а не в порядке упоминания переменных в условии. Первая буква — переменная первого столбца. Для демо: y, x, z, w.

Подборка ошибок по всем номерам — в статье Типичные ошибки на ЕГЭ по информатике.

Тайминг на экзамене

ЭтапВремя
Перенести функцию и фрагмент в код1 мин
Запустить перебор, прочитать ответ30 сек
Проверить порядок подстановкой в одну строку1 мин
Итого2–3 мин

Спецификация отводит на задание 2 три минуты, и это реально только с готовым шаблоном. Набирать перебор с нуля на экзамене — пять-семь минут, поэтому шаблон стоит выучить до автоматизма: он один и тот же для любой функции и любого фрагмента.

Как тренироваться

  1. Реши 10–15 заданий в форме демоверсии — с пустыми клетками и условием различных строк. Ручной разбор и перебор должны давать один ответ.
  2. Намеренно отключи проверку различия строк и посмотри, на каких заданиях появляется второй порядок. Так ловушка запоминается.
  3. Прогони шаблон на функциях с ≡ и → — именно на них чаще ошибаются при переносе в код.
  4. Проверяй каждый ответ подстановкой: возьми найденный порядок, подставь значения одной строки в функцию и убедись, что F совпал.

Если логика на Python ещё не отработана — сначала логика и множества в задании 15, там те же операции в другой оболочке. Как изменились остальные номера — в обзоре ЕГЭ по информатике 2027: что изменилось, а само демозадание в контексте всего варианта — в разборе демоверсии 2027.

Короткий итог

Задание 2 в 2027 году, как и в 2026-м, — фрагмент из трёх различных строк с пустыми клетками. Пустая клетка не равна нулю, а условие о различных строках отсекает лишний порядок: на демоверсии их два, xyzw и yxzw, и верный — yxzw. Перебор на Python в двадцать строк учитывает и то и другое, а ручной разбор начинается с переменной, которую фиксирует столбец F.

Задания 2 в форме демоверсии с автопроверкой есть в TuteMe: фрагменты с пустыми клетками, и у каждого задания ответ единственный именно при условии различных строк.

Попробовать бесплатно →

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

Изменилось ли задание 2 в 2027 году

По форме — нет: фрагмент из трёх различных строк с пустыми клетками был и в демоверсии 2026 (там ответ zyxw). В демо 2027 другая функция и ответ yxzw. Условие «строки различны» — постоянная часть задания: без него у демозадания 2027 два ответа, а с ним — один.

Что означает пустая клетка во фрагменте

Что значение переменной в этой клетке неизвестно — оно может быть и 0, и 1. Пустая клетка не равна нулю. При переборе такие клетки не сравнивают с набором, а остальные клетки строки обязаны совпасть.

Зачем в условии написано, что строки различны

Чтобы ответ был единственным. Если пустые клетки заполнить так, что две строки фрагмента совпадут, фрагмент перестанет быть тремя строками таблицы истинности — в таблице каждый набор встречается один раз. В демоверсии 2027 именно это условие отсекает второй порядок переменных.

Как решать задание 2 без программирования

Сначала выясни, при каких условиях функция даёт значение из столбца F. В демо F = 0, а функция — дизъюнкция с ¬z, поэтому z = 1 во всех строках. Это сразу определяет столбец z: тот, где нет нулей. Дальше остальные переменные раскладываются по столбцам из оставшихся условий. Ручной разбор ниже в статье.

Как решать задание 2 на Python в 2027 году

Перебрать 24 порядка переменных и для каждого — 16 наборов. Для каждой строки фрагмента собрать наборы, которые дают нужное F и не противоречат заполненным клеткам. Порядок подходит, если из трёх списков можно выбрать три разных набора. Код — в статье, на демоверсии он печатает единственную строку yxzw.

Сколько баллов и времени стоит задание 2

Один первичный балл, базовый уровень, три минуты по спецификации 2027 года. Перебор на Python укладывается в это время, если шаблон отработан заранее; ручной разбор занимает больше, но тоже реален.

Как записать ответ в задании 2

Буквами переменных подряд, без пробелов и запятых, в порядке столбцов: первая буква — переменная первого столбца, и так далее. Для демоверсии 2027 ответ — yxzw. Порядок букв в условии (w, x, y, z) к ответу отношения не имеет.

Какие ошибки чаще всего в задании 2

Пустая клетка прочитана как 0; забыто условие различных строк, и в ответ попал первый из двух порядков; перепутаны импликация и эквивалентность; неверный приоритет операций в записи функции на Python. Проверяй себя подстановкой найденного порядка во все три строки.

Готов применять на практике?

В тренажёре TuteMe — 1250 заданий ЕГЭ по информатике с автоматической проверкой и подробным разбором. AI-помощник подсказывает, где ты ошибаешься, и подбирает задания под твой уровень.

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

Не пишешь код? Курс «Python для ЕГЭ» — с нуля, первые два модуля бесплатно.