Перейти к содержимому

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

Задание 2до 1 баллатаблицы истинности
Раздел
Теоретические основы информатики
Максимальный балл
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.

Решение на Python
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.

Решение на Python
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.

Решение на Python
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.

Решение на Python
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.

Python
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))
            break
Вывод
yxwz

Шаблоны кода ко всем заданиям

Как выполнять задание

  1. Выпишите функцию и считайте её по частям: сначала отрицания, затем конъюнкции и дизъюнкции, последними — импликации и тождества.
  2. Посмотрите на столбец F: все нули означают, что строки взяты из строк с F = 0, все единицы — из строк с F = 1; «всех строк, в которых F = 0» значит, что других таких строк нет.
  3. Ищите столбцы-подсказки: столбец из одних нулей или единиц выдаёт переменную, не менявшую значение.
  4. Проверьте расстановку, подставив буквы в функцию.
  5. Ответ — строчные латинские буквы подряд, без пробелов и запятых.

Что нужно знать

  • Операции. ¬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 году, изменений структуры КИМ нет.

Другие задания раздела «Теоретические основы информатики»

По демоверсии, спецификации и кодификатору ФИПИ 2027
Обновлено:

Все задания ЕГЭ по информатике →