6 мин чтения

Как решать задание 2 ЕГЭ по информатике 2026 — таблицы истинности

Разбор задания 2 ЕГЭ по информатике: логические операции, таблицы истинности, приоритет, импликация, де Морган, Python-перебор. Алгоритм и типичные ошибки.

О чём задание

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

Звучит абстрактно, но логические выражения — это основа всего, что делает компьютер: процессор работает с битами через логические вентили, база данных фильтрует записи по условиям, поисковик ищет документы по запросу с AND/OR/NOT. Понимать таблицы истинности — значит понимать, как устроена цифровая логика.

Задание 2 стоит 1 первичный балл, но его решают почти все, кто хоть немного подготовился. Потерять его — обидно, потому что навык элементарный, если разобрался один раз. Если ты только начинаешь и не уверен в базе, посмотри пошаговый план подготовки с нуля — там тема логики разобрана с самого начала.

Логические операции и их таблицы

Всего пять базовых операций, которые встречаются на ЕГЭ. Все они работают с переменными, принимающими только два значения: 0 (ложь) или 1 (истина).

Отрицание (НЕ, ¬, NOT)

Просто переворачивает значение. Если A = 1, то ¬A = 0, и наоборот.

A¬A
01
10

Конъюнкция (И, ∧, AND)

Равна 1 только когда обе переменные равны 1.

ABA ∧ B
000
010
100
111

Дизъюнкция (ИЛИ, ∨, OR)

Равна 1, когда хотя бы одна из переменных равна 1.

ABA ∨ B
000
011
101
111

Импликация (→)

Самая коварная операция. Равна 0 только когда A = 1, а B = 0. Во всех остальных случаях — 1.

ABA → B
001
011
100
111

Ключевая формула: A → B = ¬A ∨ B. Запомни её — почти в каждой задаче задания 2 нужно раскрыть импликацию именно так.

Эквивалентность (≡, ↔)

Равна 1, когда значения переменных совпадают.

ABA ≡ B
001
010
100
111

Приоритет операций

В учебниках иногда приоритет описывают по-разному, но на ЕГЭ он такой:

  1. Скобки
  2. Отрицание (¬)
  3. Конъюнкция (∧)
  4. Дизъюнкция (∨)
  5. Импликация (→)
  6. Эквивалентность (≡)

Это значит, что выражение A ∨ B ∧ C — это A ∨ (B ∧ C), а не (A ∨ B) ∧ C. А выражение ¬A ∧ B — это (¬A) ∧ B, то есть отрицание действует только на A.

Когда видишь сложное выражение, сначала мысленно расставь скобки по приоритету. Это убирает 80% ошибок.

Три типа задач

1. Найти набор переменных, при котором выражение равно 1 (или 0)

Дают выражение и говорят: «Сколько существует наборов значений переменных A, B, C, D, при которых выражение истинно?» Нужно либо перебрать все 2^N наборов, либо упростить выражение до простой формы.

2. Восстановить выражение по фрагменту таблицы

Дают таблицу, в шапке которой переменные обозначены как «Перем. 1», «Перем. 2», «Перем. 3», и известный вид выражения (например, (A → B) ∧ (¬C ∨ A)). Нужно понять, какая колонка — это A, какая — B, какая — C.

3. Построить полную таблицу истинности

Реже встречается на КЕГЭ в чистом виде, но как часть задачи — постоянно. Дают выражение, просят посчитать его значение при всех возможных наборах.

Алгоритм решения каждого типа

Для задачи типа 1 — найти набор

  1. Выпиши выражение и расставь скобки по приоритету.
  2. Если есть импликация — раскрой через A → B = ¬A ∨ B.
  3. Примени де Моргана, если есть отрицания над скобками.
  4. Подумай: при каких значениях переменных получится 1. Часто достаточно анализа «какое слагаемое в дизъюнкции или какой множитель в конъюнкции легче сделать истинным».
  5. Если выражение сложное — пиши Python-перебор.
  6. Проверь ответ подстановкой.

Для задачи типа 2 — восстановить соответствие

  1. Пойми структуру выражения: какая переменная встречается чаще, какая под отрицанием.
  2. Посмотри на строки таблицы, где всё выражение равно 1 (или 0).
  3. Подставляй колонки по очереди в выражение. Если в строке есть комбинация, которая противоречит выражению, — колонка сопоставлена неверно.
  4. Перебирай варианты (их максимум 6 для трёх переменных — 3!), пока не найдёшь тот, при котором все строки таблицы согласуются с выражением.
  5. Python ускоряет это на порядок.

Для задачи типа 3 — построить таблицу

  1. Выпиши все наборы в стандартном порядке (от 0000 до 1111 для 4 переменных).
  2. Для каждого набора вычисляй выражение по приоритету, записывая промежуточные столбцы.
  3. Аккуратность важнее скорости — одна ошибка в строке ломает весь ответ.

Полноценный разобранный пример

Условие. Логическая функция F задана выражением (A ∧ ¬B) ∨ (B ≡ (C ∨ D)). Дан фрагмент таблицы истинности:

Перем. 1Перем. 2Перем. 3Перем. 4F
01010
10101
00110

Определи, в каком порядке идут переменные A, B, C, D в столбцах.

Решение.

Сначала разберёмся с выражением. Оно состоит из двух частей, соединённых дизъюнкцией: (A ∧ ¬B) и (B ≡ (C ∨ D)). Чтобы F = 0, обе части должны быть равны 0.

Первая часть A ∧ ¬B = 0 либо когда A = 0, либо когда B = 1.

Вторая часть B ≡ (C ∨ D) = 0 когда B и C ∨ D различаются, то есть либо B=0 и хотя бы одна из C, D равна 1, либо B=1 и обе C, D равны 0.

Смотрим первую строку: F = 0. Значения переменных: 0, 1, 0, 1. То есть ровно одна переменная равна 0 (две из них), а две — 1. Чтобы A ∧ ¬B = 0, либо переменная на месте A равна 0, либо переменная на месте B равна 1. Чтобы вторая часть была 0, нужно противоречие между B и C ∨ D.

Давай проверим гипотезу: A = Перем. 1, B = Перем. 2, C = Перем. 3, D = Перем. 4.

  • Строка 1: A=0, B=1, C=0, D=1. Первая часть: 0 ∧ ¬1 = 0 ∧ 0 = 0. Вторая часть: 1 ≡ (0 ∨ 1) = 1 ≡ 1 = 1. F = 0 ∨ 1 = 1. Но в таблице F = 0. Противоречие.

Значит, гипотеза неверна. Пробуем: A = Перем. 2, B = Перем. 1, C = Перем. 3, D = Перем. 4.

  • Строка 1: A=1, B=0, C=0, D=1. Первая часть: 1 ∧ ¬0 = 1 ∧ 1 = 1. F = 1. Не сходится.

Пробуем: A = Перем. 3, B = Перем. 1, C = Перем. 2, D = Перем. 4.

  • Строка 1: A=0, B=0, C=1, D=1. Первая часть: 0 ∧ ¬0 = 0. Вторая часть: 0 ≡ (1 ∨ 1) = 0 ≡ 1 = 0. F = 0 ∨ 0 = 0. Сходится!
  • Строка 2: A=1, B=1, C=0, D=0. Первая часть: 1 ∧ ¬1 = 0. Вторая часть: 1 ≡ (0 ∨ 0) = 1 ≡ 0 = 0. F = 0. Но в таблице F = 1. Противоречие.

Пробуем: A = Перем. 4, B = Перем. 2, C = Перем. 1, D = Перем. 3.

  • Строка 1: A=1, B=1, C=0, D=0. Первая часть: 1 ∧ ¬1 = 0. Вторая часть: 1 ≡ (0 ∨ 0) = 1 ≡ 0 = 0. F = 0. Сходится!
  • Строка 2: A=0, B=0, C=1, D=1. Первая часть: 0 ∧ ¬0 = 0. Вторая часть: 0 ≡ (1 ∨ 1) = 0 ≡ 1 = 0. F = 0. Но в таблице F = 1. Противоречие.

На шестом варианте обычно находится правильный. Чтобы не тратить время, перейдём к Python.

Python для перебора

from itertools import product, permutations

# Фрагмент таблицы из условия
table = [
    ((0, 1, 0, 1), 0),
    ((1, 0, 1, 0), 1),
    ((0, 0, 1, 1), 0),
]

def F(A, B, C, D):
    return (A and not B) or (B == (C or D))

# Перебираем все перестановки (A, B, C, D) по столбцам
for perm in permutations(range(4)):
    ok = True
    for row, expected in table:
        # perm[0] — индекс столбца для A, perm[1] — для B и т.д.
        A = row[perm[0]]
        B = row[perm[1]]
        C = row[perm[2]]
        D = row[perm[3]]
        if int(F(A, B, C, D)) != expected:
            ok = False
            break
    if ok:
        print("Найден порядок:", perm)

Запустишь — получишь индексы столбцов для A, B, C, D. Это и есть ответ. На КЕГЭ такой подход занимает 3-4 минуты, включая набор кода.

Приёмы упрощения

Законы де Моргана

  • ¬(A ∧ B) = ¬A ∨ ¬B
  • ¬(A ∨ B) = ¬A ∧ ¬B

Отрицание проваливается внутрь скобки, И меняется на ИЛИ и наоборот.

Раскрытие импликации

  • A → B = ¬A ∨ B

Это самая важная формула задания 2. Без неё сложные выражения не упрощаются.

Эквивалентность через импликацию

  • A ≡ B = (A → B) ∧ (B → A)
  • A ≡ B = (A ∧ B) ∨ (¬A ∧ ¬B)

Второй вариант удобнее для анализа: эквивалентность истинна, когда обе переменные истинны или обе ложны.

Дистрибутивность

  • A ∧ (B ∨ C) = (A ∧ B) ∨ (A ∧ C)
  • A ∨ (B ∧ C) = (A ∨ B) ∧ (A ∨ C)

Помогает разбить сложное выражение на сумму или произведение простых.

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

Неправильный приоритет. Школьник видит A ∨ B ∧ C и считает его как (A ∨ B) ∧ C. Правильно — A ∨ (B ∧ C). Это убивает до 30% неверных ответов.

Путаница с импликацией. Пишут, что A → B = A ∧ ¬B — это значение, которое делает импликацию ложной, а не саму импликацию. Запомни: импликация — это ¬A ∨ B.

Забыли отрицание при де Моргане. Раскрывают ¬(A ∧ B) как ¬A ∧ ¬B — неверно. Операция должна поменяться: правильно ¬A ∨ ¬B.

В Python забыли про импликацию. Пишут A -> B или A => B — в Python таких операторов нет. Правильно: (not A) or B.

Не проверили ответ. Нашли соответствие за 30 секунд и не подставили обратно. А в выражении ошибка в скобках — и ответ неверный.

Неаккуратность в строке с NOT. Путают ¬A ∧ B и ¬(A ∧ B). Всегда расставляй скобки мысленно.

Подробнее про типичные косяки и как их избежать на всём экзамене — читай разбор ошибок ЕГЭ по информатике.

Тайминг

Задание 2 идёт сразу после задания 1, и оба должны уходить за 10-12 минут суммарно. Раскладка:

  • Прочитать условие и выражение: 30 секунд
  • Упростить (де Морган, раскрыть импликацию): 1-2 минуты
  • Перебрать наборы/перестановки: 2-3 минуты (руками) или 1 минута (Python)
  • Проверить ответ: 30 секунд

Итого — 4-6 минут. Если уходишь за 8 минут, что-то идёт не так: либо неправильно упростил, либо ошибся в приоритете. Пометь задачу и иди дальше.

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

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

Неделя 2. Отдельно натренируй импликацию. Реши 15 задач, где есть минимум одна импликация. В каждой — сначала раскрой её через ¬A ∨ B, потом считай.

Неделя 3. Приступай к задачам на восстановление соответствия переменных. Реши 10 задач руками, ещё 10 — через Python. Сравни время.

Неделя 4. Смешанная тренировка: 25 вариантов задания 2 с таймером 6 минут. После ошибки записывай разбор в тетрадь — через неделю повторений станет меньше.

Если готовишься всерьёз и хочешь разбор по всем заданиям КЕГЭ в одном потоке — посмотри общий гид, как набрать 90+ баллов. А если тема ещё сложновата — разбирай её на тренажёре TuteMe: задачи генерируются автоматически, после ошибки сразу показывается разбор, и за месяц ты доведёшь задание 2 до автоматизма.

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

Сколько времени тратить на задание 2 ЕГЭ по информатике?

На типовую задачу с фрагментом таблицы истинности — 4-6 минут. Если выражение сложное и ты решаешь через Python-перебор, уложишься за 3-4 минуты вместе с написанием кода. На восстановление выражения по полной таблице уходит до 8 минут. За задание дают 1 первичный балл, поэтому если застрял дольше 8 минут — помечай и иди дальше.

Какой приоритет у логических операций в задании 2?

Порядок такой: скобки → отрицание (¬) → конъюнкция (∧, И) → дизъюнкция (∨, ИЛИ) → импликация (→) → эквивалентность (≡, ↔). Это отличается от математики: конъюнкция — не умножение в строгом смысле, а именно логическое И. Большинство ошибок в задании 2 — из-за неправильного приоритета, особенно с импликацией. Всегда проверяй себя, расставляя мысленные скобки.

Как раскрывать импликацию A → B?

Ключевая формула: A → B = ¬A ∨ B. Импликация равна 0 только в одном случае — когда A=1, а B=0. Во всех остальных трёх случаях она равна 1. Это самая частая ловушка задания 2: школьники по привычке считают, что из лжи ничего не следует, но в математической логике из лжи следует что угодно, и импликация равна 1. Запомни намертво: 1→0 = 0, все остальные комбинации дают 1.

Можно ли решать задание 2 на Python?

Да, и это часто быстрее ручного анализа. Ты просто перебираешь все 2^N наборов значений переменных, подставляешь в выражение и сравниваешь со строками из условия. На КЕГЭ Python доступен, и для задания 2 он идеально подходит. Главное — не забудь: в Python импликация не имеет оператора, её надо писать как (not A) or B, а эквивалентность — как A == B.

Что такое законы де Моргана и зачем они нужны?

Это правила раскрытия отрицания: ¬(A ∧ B) = ¬A ∨ ¬B и ¬(A ∨ B) = ¬A ∧ ¬B. Отрицание «проваливается» внутрь скобки, а операция меняется на противоположную. На задании 2 эти законы помогают упрощать громоздкие выражения и быстро понимать, при каких наборах выражение истинно. Отдельный приём: двойное отрицание ¬¬A = A.

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

Возьми найденный набор значений переменных и руками подставь в исходное выражение, считая по приоритету. Если получилось 1 (или то значение, которое требовало условие) — ответ верный. Для дополнительной проверки можно прогнать весь фрагмент таблицы через Python: все строки должны совпасть с условием. Проверять обязательно — время жалеть не стоит, переписать ответ — 20 секунд.

Как быть, если в выражении 5 и больше переменных?

Ручной перебор 2^5 = 32 наборов уже утомителен, поэтому пиши Python-перебор. Используй itertools.product([0,1], repeat=N) — это генератор всех наборов. Для каждого набора вычисляй выражение и проверяй условие. С 6 переменными (64 набора) это тоже нормально работает. Даже для 10 переменных (1024 набора) Python считает мгновенно.

Часто ли задание 2 связано с заданием 15?

Да, логические выражения — общий фундамент. В задании 2 ты работаешь с таблицей истинности, а в задании 15 — с логическими выражениями на множествах и отрезках. Если разобрался с приоритетом операций и де Морганом на задании 2, задание 15 будет проще. Оба задания тренируй параллельно — эффект умножается.

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

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

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