ЕГЭ 2027 · Информатика
Задание 2 ЕГЭ по информатике
Что проверяет линия, сколько она стоит, на чём теряют баллы и как решать — по нашим конспектам. В банке 200+ заданий этой линии с разбором.
Аналитика ЕГЭ: №2, №15 (алгебра логики, таблицы истинности)
- Баллы
- по 1 первичному баллу за каждое
- Частота
- в каждом варианте
Частые ловушки
- Не учитывают порядок операций: ¬ → ∧ → ∨ → → → ≡
- Забывают, что импликация A→B ложна только при A=1, B=0
Совет. Отбрасывай строки таблицы, где выражение точно ложно, и подбирай соответствие столбцов переменным.
Аналитика ЕГЭ: №2, №15 (преобразование логических выражений)
- Баллы
- по 1 первичному баллу за каждое
- Частота
- в каждом варианте
Частые ловушки
- Неверно строят отрицание импликации: ¬(A→B) = A ∧ ¬B
- Проверяют не все участки числовой прямой — теряют границы отрезков
Совет. Черти отрезки на прямой, отметь критические точки; «истинно при любом x» → нужное покрытие всей прямой.
Аналитика ЕГЭ: №2 (таблицы истинности логических выражений и схемы)
- Баллы
- 1 первичный балл
- Частота
- в каждом варианте
Частые ловушки
- Путают И (выход 1, только если ВСЕ входы 1) и ИЛИ (выход 1, если хотя бы один вход 1)
- Теряют кружок инверсии на входе или выходе элемента: И с кружком — это уже И-НЕ
- Нарушают приоритет: сначала ¬, потом ∧, потом ∨, и только затем → и ≡
- Считают, что импликация симметрична: A→B ≠ B→A; ложна она ровно в одном случае — 1→0
- В задании 2 проверяют не все строки фрагмента и берут первую подходящую перестановку
Совет. В задании 2 удобнее работать со строками, где F = 0: их обычно меньше, а условие «F=0» для ∨ и → даёт жёсткие ограничения на значения переменных
Разборы
Разбор примера
Задание 2: разбор на простой функции
Дана функция F = (x ∧ ¬y) ∨ z. Фрагмент таблицы истинности (три столбца переменных в неизвестном порядке и столбец F):
- • строка 1: 1 0 0, F = 0
- • строка 2: 0 1 1, F = 1
- • строка 3: 1 1 0, F = 1
Определите, какому столбцу соответствует каждая из переменных x, y, z.
Показать решение по шагам
- 1. Шаг 1. Понимаем функцию. F истинна, если z = 1 (тогда дизъюнкция истинна независимо от остального) либо если одновременно x = 1 и y = 0.
- 2. Шаг 2. Смотрим на строку 1: F = 0. Значит, z = 0 и неверно, что x = 1 при y = 0. В строке одна единица и два нуля. Раз z = 0, единица стоит либо у x, либо у y. Если бы единица была у x, то y = 0, и тогда x ∧ ¬y дало бы 1, то есть F = 1 — противоречие. Значит, единица в строке 1 принадлежит y, то есть y стоит в первом столбце.
- 3. Шаг 3. Проверяем на строке 3: F = 1, и в первом столбце (это y) стоит 1. При y = 1 конъюнкция x ∧ ¬y равна 0, значит, истинность обеспечена только z. Следовательно, z = 1. В строке 3 значения «1 1 0», и в третьем столбце ноль — значит, z не третий столбец, z — второй.
- 4. Шаг 4. Оставшийся третий столбец достаётся переменной x. Проверим строку 2: столбцы дают y = 0, z = 1, x = 1. Тогда F = (1 ∧ ¬0) ∨ 1 = 1 — совпадает с условием.
- 5. Шаг 5. Проверяем строку 1 полностью: y = 1, z = 0, x = 0. F = (0 ∧ ¬1) ∨ 0 = 0 — совпадает.
- 6. Ответ записываем в порядке столбцов: первый столбец y, второй z, третий x.
Ответ: yzx
Разбор примера
Строим таблицу истинности программой
Показать, как перебрать все наборы для F = (x∨y) ∧ ¬z.
Показать решение по шагам
- 1.
from itertools import product for w,x,y,z in product([0,1],repeat=4): F = (x or y) and (not z) if F: print(w,x,y,z,'-> 1') # сравниваем строки с F=1 (или F=0) с фрагментом из условия # и находим единственное соответствие столбцов переменным
Ответ: Перебор всех 16 наборов даёт полную таблицу для сопоставления
Разбор примера
Задание 2: разбор рассуждением, без перебора
Функция F = (w ∧ ¬x) ∨ (y → z). Фрагмент таблицы истинности — три строки, столбцы переменных в неизвестном порядке:
- • 0 0 0 1, F = 0
- • 0 1 0 1, F = 0
- • 0 1 1 1, F = 1
Определите, какая переменная стоит в каком столбце.
Показать решение по шагам
- 1. Шаг 1. Ищем, что даёт больше всего информации. Дизъюнкция ложна, только когда ложны оба слагаемых. Значит, в каждой строке с F = 0 выполнено сразу два условия: w ∧ ¬x = 0 и y → z = 0.
- 2. Шаг 2. Второе условие сильнее: импликация ложна в единственном случае — y = 1 и z = 0. Это точное значение двух переменных, и оно верно для обеих строк с F = 0.
- 3. Шаг 3. Смотрим первую строку: 0 0 0 1. Переменная y обязана быть равна 1, а единица здесь ровно одна — в четвёртом столбце. Значит, y стоит в четвёртом столбце.
- 4. Шаг 4. Проверяем на второй строке 0 1 0 1: в четвёртом столбце снова 1 — согласуется ✔
- 5. Шаг 5. Теперь z. В обеих строках с F = 0 переменная z равна 0. В первой строке нули стоят в столбцах 1, 2, 3; во второй — в столбцах 1 и 3. Пересечение: z стоит в первом или третьем столбце.
- 6. Шаг 6. Различаем их по третьей строке 0 1 1 1, где F = 1. Предположим, что z — первый столбец, тогда z = 0, и импликация y → z равна 1 → 0 = 0. Значит, единицу должно давать первое слагаемое: w ∧ ¬x = 1. Но на w и x остаются столбцы 2 и 3, в которых стоят 1 и 1: при любом распределении получается 1 ∧ ¬1 = 0. Противоречие.
- 7. Шаг 7. Значит, z — третий столбец. Проверим: в третьей строке там 1, импликация y → z равна 1 → 1 = 1, и F = 1 без всяких условий на w и x ✔ А в строках с F = 0 третий столбец содержит 0 — как и требовалось.
- 8. Шаг 8. Остались w и x на столбцах 1 и 2. Возьмём вторую строку 0 1 0 1: столбец 1 содержит 0, столбец 2 содержит 1. Условие строки — w ∧ ¬x = 0. Если бы w был вторым столбцом (w = 1), а x первым (x = 0), получилось бы 1 ∧ ¬0 = 1, и F стало бы единицей. Противоречие.
- 9. Шаг 9. Значит, w — первый столбец, x — второй. Тогда w = 0, и конъюнкция w ∧ ¬x равна нулю во всех трёх строках ✔
- 10. Шаг 10. Ответ записываем в порядке столбцов: wxzy.
- 11. Шаг 11. Что здесь сработало. Мы не перебирали 24 перестановки, а шли от самого жёсткого условия: импликация фиксирует значения двух переменных сразу. Общее правило: ищите в формуле то, что при данном значении F определяется однозначно, — обычно это ложная импликация или истинная конъюнкция.
Ответ: wxzy
Разбор примера
Тот же фрагмент программой: перебор перестановок
Решить ту же задачу перебором всех вариантов соответствия столбцов и переменных.
Показать решение по шагам
- 1.
from itertools import product, permutations
def F(w, x, y, z): return int((w and not x) or (y <= z))- • fragment = [((0, 0, 0, 1), 0),
- • ((0, 1, 0, 1), 0),
- • ((0, 1, 1, 1), 1)]
imena = 'wxyz' for perm in permutations(range(4)): podhodit = True for stolbcy, znachenie in fragment: peremennye = [0] * 4 for k in range(4):peremennye[perm[k]] = stolbcy[k]
if F(*peremennye) != znachenie: podhodit = False break if podhodit: print(''.join(imena[perm[k]] for k in range(4))) - 2. Шаг 1. Что перебираем.
perm[k]— номер переменной, стоящей в столбце k. Всего таких соответствий 4! = 24, и проверить их все — работа на доли секунды. - 3. Шаг 2. Как проверяется одно соответствие. Для каждой строки фрагмента раскладываем значения столбцов по переменным, считаем функцию и сравниваем с указанным F. Если хоть одна строка не сошлась — соответствие отбрасывается.
- 4. Шаг 3. Обратите внимание на строку
peremennye[perm[k]] = stolbcy[k]. Здесь легко ошибиться в направлении: значение столбца k кладётся в ячейку переменной perm[k], а не наоборот. Ошибка направления даёт зеркальный ответ — перестановку, обратную правильной. - 5. Шаг 4.
y <= z— это запись импликации y → z: она ложна ровно при y = 1, z = 0, то есть когда y больше z. - 6. Шаг 5. Программа печатает одну строку:
wxzy. Совпало с ручным разбором ✔ Если бы напечаталось несколько строк, это означало бы, что фрагмента недостаточно и в условии где-то потеряна строка. - 7. Шаг 6. Практический совет. На экзамене имеет смысл писать именно такую программу, а рассуждение держать как проверку: перебор нечувствителен к невнимательности, но чувствителен к опечатке в формуле. Совпадение двух независимых способов — лучшая гарантия из доступных.
- 8. Шаг 7. Как менять программу под свой вариант: переписать тело функции
Fпо формуле из условия и заменить списокfragmentстроками из таблицы. Больше ничего трогать не нужно, даже если переменных пять — тогдаrepeatиrangeстанут пятёрками, а перестановок будет 120.
Ответ: wxzy
Разбор примера
Считаем выход схемы F = (A ∧ ¬B) ∨ C
На входы схемы из элементов НЕ, И и ИЛИ подаются сигналы A, B и C: B инвертируется, результат вместе с A идёт на элемент И, а выход И вместе с C — на элемент ИЛИ. Найдите F для наборов (A, B, C) = (1, 1, 0), (1, 0, 0), (0, 1, 1).
Показать решение по шагам
- 1. Шаг 1. Записываем выражение по схеме: инверсия даёт ¬B, элемент И даёт A ∧ ¬B, элемент ИЛИ добавляет C. Итого F = (A ∧ ¬B) ∨ C.
- 2. Набор (1, 1, 0): ¬B = ¬1 = 0; A ∧ ¬B = 1 ∧ 0 = 0; F = 0 ∨ C = 0 ∨ 0 = 0.
- 3. Набор (1, 0, 0): ¬B = ¬0 = 1; A ∧ ¬B = 1 ∧ 1 = 1; F = 1 ∨ 0 = 1.
- 4. Набор (0, 1, 1): ¬B = 0; A ∧ ¬B = 0 ∧ 0 = 0; F = 0 ∨ 1 = 1. Здесь единицу дал сам вход C, минуя элемент И.
- 5. Наблюдение для проверки: F = 0 возможно только тогда, когда C = 0 и одновременно ветвь A ∧ ¬B равна нулю. Значит нулей в полной таблице будет ровно столько, сколько наборов с C = 0 и (A = 0 или B = 1): это (0,0,0), (0,1,0), (1,1,0) — три штуки.
Ответ: F(1,1,0) = 0; F(1,0,0) = 1; F(0,1,1) = 1
Уроки по этой линии
- Логические операции и таблицы истинности — открыт бесплатно
- Законы алгебры логики
- Задание 2: восстановление таблицы истинности
- Логические элементы и схемы: И, ИЛИ, НЕ
Потренируй задание 2
Задания этой линии с проверкой и разбором решения — после бесплатной регистрации. Ошибки сами попадут в план повторения.