18 задание в ЕГЭ по информатике — одно из самых сложных для выпускников, требующее работы с логическими выражениями и таблицами истинности. Многие ученики теряют драгоценные баллы из-за неумения правильно составить формулы в Microsoft Excel или LibreOffice Calc. Однако с правильным подходом это задание можно решить за 10-15 минут, используя всего несколько ключевых функций.
В этой статье мы разберём алгоритм решения 18 задания с нуля: от анализа условия до записи итоговой формулы. Вы узнаете, как преобразовать логическое выражение в таблицу, какие функции Excel использовать для разных типов задач, и как избежать типичных ошибок при проверке. Особое внимание уделим работе с битами, масками и логическими операциями — именно они чаще всего вызывают затруднения.
Материал будет полезен не только выпускникам, но и учителям информатики, репетиторам, а также всем, кто хочет научиться работать с логическими выражениями в электронных таблицах. Мы рассмотрим реальные примеры из ЕГЭ прошлых лет и покажем, как их решать без ошибок.
1. Разбор структуры 18 задания ЕГЭ по информатике
18 задание в ЕГЭ проверяет умение работать с логическими выражениями и таблицами истинности. Типичная формулировка звучит так:
"Обозначим через m&n поразрядную конъюнкцию неотрицательных целых чисел m и n. Так, например, 14&5 = 11102&01012 = 01002 = 4. Для какого наименьшего неотрицательного целого числа А формула (x&28 ≠ 0) → ((x&17 = 0) → (x&А ≠ 0)) тождественно истинна?"
В задании всегда присутствуют:
- 🔹 Поразрядные операции (&, |, →, ¬) — их нужно правильно интерпретировать.
- 🔹 Условие тождественной истинности — формула должна выполняться для всех возможных значений переменных.
- 🔹 Поиск минимального (или максимального) значения параметра (А, B, C и т.д.).
Основная сложность — перевод логического выражения в таблицу истинности и дальнейшая работа с битами. В Excel это делается через функции И(), ИЛИ(), НЕ() и побитовые операции (если они поддерживаются).
2. Подготовка Excel для решения задачи
Прежде чем приступать к решению, нужно правильно организовать таблицу в Excel. Вот пошаговая инструкция:
Шаг 1. Создайте столбцы для всех переменных.
- 📌 Если в задаче одна переменная (например,
x), достаточно одного столбца. - 📌 Если переменных несколько (например,
x,y,z), для каждой выделяйте отдельный столбец.
Шаг 2. Заполните столбец всеми возможными значениями переменных.
Для 8-битного числа x (0–255) используйте формулу:
=ДЕС.В.ДВ(СТРОКА(A1)-1; 8)
Эта формула преобразует номер строки в двоичное число. Например, в ячейке A1 будет 00000000, в A2 — 00000001 и т.д.
Шаг 3. Добавьте столбцы для промежуточных вычислений.
Для каждой части логического выражения (например, x&28 ≠ 0, x&17 = 0) создайте отдельный столбец.
☑️ Подготовка таблицы в Excel
Пример организации таблицы:
| x (dec) | x (bin) | x&28 ≠ 0 | x&17 = 0 | x&А ≠ 0 | Результат формулы |
|---|---|---|---|---|---|
| 0 | 00000000 | ЛОЖЬ | ИСТИНА | ЛОЖЬ | ИСТИНА |
| 1 | 00000001 | ЛОЖЬ | ЛОЖЬ | ? | ? |
| ... | ... | ... | ... | ... | ... |
3. Преобразование логических выражений в формулы Excel
Ключевой этап — запись логического выражения из условия в виде формул Excel. Рассмотрим основные операции и их аналоги:
Базовые логические функции:
- 🔧 Конъюнкция (И) →
=И(условие1; условие2)или=ИЛИ(НЕ(условие1); НЕ(условие2))для операции NAND. - 🔧 Дизъюнкция (ИЛИ) →
=ИЛИ(условие1; условие2). - 🔧 Отрицание (НЕ) →
=НЕ(условие). - 🔧 Импликация (→) →
=ИЛИ(НЕ(посылка); заключение).
Поразрядные операции (если они есть в задаче):
В Excel нет встроенных функций для побитовых AND (&) и OR (|), но их можно эмулировать:
- 🔹 Для
x&28используйте:=ОСТАТ(ЦЕЛОЕ(x/2^(n-1)); 2)для каждого бита, гдеn— позиция бита (от 1 до 8). - 🔹 Или воспользуйтесь надстройкой "Побитовые операции" (если она установлена).
Пример перевода выражения:
Возьмём формулу из условия: (x&28 ≠ 0) → ((x&17 = 0) → (x&А ≠ 0)).
В Excel это будет записано как:
=ИЛИ(
НЕ(ИЛИ(ОСТАТ(ЦЕЛОЕ(A2/16);2); ОСТАТ(ЦЕЛОЕ(A2/8);2))); -- x&28 ≠ 0
ИЛИ(
НЕ(И(ОСТАТ(A2;2)=0; ОСТАТ(ЦЕЛОЕ(A2/16);2)=1)); -- x&17 = 0
ИЛИ(ОСТАТ(ЦЕЛОЕ(A2/4);2); ОСТАТ(ЦЕЛОЕ(A2/2);2)) -- x&A ≠ 0 (пример для A=12)
)
)
4. Поиск минимального значения параметра А
После того как таблица заполнена, нужно найти минимальное А, при котором формула тождественно истинна. Алгоритм действий:
Шаг 1. Проверьте все строки на истинность.
В последнем столбце (с результатом формулы) не должно быть ни одного значения ЛОЖЬ. Если есть хоть одно ЛОЖЬ, значит, текущее А не подходит.
Шаг 2. Используйте метод перебора.
Начните с A=0 и увеличивайте значение, пока все строки не станут истинными. Для ускорения процесса можно использовать двоичный поиск:
- 🔍 Проверьте
A=128(середина диапазона 0–255). - 🔍 Если формула ложна, проверьте
A=64илиA=192в зависимости от результата.
Шаг 3. Автоматизируйте проверку.
Создайте отдельную ячейку с формулой:
=ЕСЛИ(СЧЁТЕСЛИ(диапазон_результатов; "ЛОЖЬ")=0; "Подходит"; "Не подходит")
Эта формула покажет, подходит ли текущее А.
Если в задаче используется 8-битное число, можно сначала проверить значения А, которые являются степенями двойки (1, 2, 4, 8, 16, 32, 64, 128). Часто минимальное А оказывается суммой нескольких таких чисел.Как ускорить поиск А?
Пример нахождения А:
Допустим, при A=12 все строки истинны, а при A=8 — нет. Значит, минимальное А находится между 8 и 12. Проверяем A=9, A=10 и т.д., пока не найдём минимальное подходящее значение.
5. Типичные ошибки и как их избежать
Даже опытные ученики допускают ошибки при решении 18 задания. Вот самые распространённые:
Ошибка 1. Неправильная интерпретация поразрядных операций.
Многие путают x&28 с умножением или сложением. Это побитовое И! Например:
- 🚫 Неверно:
x*28илиx+28. - ✅ Верно: проверка битов
xв позициях, где у 28 стоят единицы (биты 3 и 4, так как 28 = 111002).
Ошибка 2. Пропуск крайних случаев.
Всегда проверяйте x=0 и x=255 — они часто "ломают" формулу. Например, если в условии есть x&А ≠ 0, то при x=0 это выражение всегда ложно.
Ошибка 3. Неправильный перевод импликации.
Импликация A → B эквивалентна ¬A ∨ B, а не A ∧ B! В Excel это записывается как:
=ИЛИ(НЕ(A); B)
Ошибка 4. Использование десятичных чисел вместо двоичных.
Всегда работайте с двоичным представлением чисел, особенно если в задаче есть поразрядные операции. Например, 17 в двоичной системе — 00010001, а не просто 17.
⚠️ Внимание: Если в задаче используется отрицание (например,¬(x&17 = 0)), в Excel его нужно записывать как=НЕ(x&17 = 0), а не=x&17 ≠ 0. Это разные выражения!
6. Пример решения реальной задачи из ЕГЭ
Разберём задачу из демоверсии ЕГЭ 2023 года:
"Обозначим через m&n поразрядную конъюнкцию неотрицательных целых чисел m и n. Так, например, 14&5 = 4. Для какого наименьшего неотрицательного целого числа А формула (x&29 ≠ 0) → ((x&12 = 0) → (x&А ≠ 0)) тождественно истинна?"
Шаг 1. Анализ выражения.
Формула имеет вид P → (Q → R), где:
- 🔹
P = x&29 ≠ 0(биты 0, 2, 3, 4 проверяются на единицу). - 🔹
Q = x&12 = 0(биты 2 и 3 равны нулю). - 🔹
R = x&A ≠ 0(хотя бы один из битов A и x совпадает).
Шаг 2. Построение таблицы в Excel.
Создаём столбцы:
- Столбец
A: значенияxот 0 до 255. - Столбец
B:x&29 ≠ 0→=ИЛИ(ОСТАТ(A2;2); ОСТАТ(ЦЕЛОЕ(A2/4);2); ОСТАТ(ЦЕЛОЕ(A2/8);2); ОСТАТ(ЦЕЛОЕ(A2/16);2)). - Столбец
C:x&12 = 0→=И(ОСТАТ(ЦЕЛОЕ(A2/4);2)=0; ОСТАТ(ЦЕЛОЕ(A2/8);2)=0). - Столбец
D:x&A ≠ 0(зависит от A). - Столбец
E: итоговая формула=ИЛИ(НЕ(B2); ИЛИ(НЕ(C2); D2)).
Шаг 3. Поиск минимального А.
Перебираем А от 0 вверх:
- 🔎 При
A=0: формула ложна дляx=8(например). - 🔎 При
A=4: формула ложна дляx=20. - 🔎 При
A=8: все строки истинны.
Ответ: минимальное А = 8.
7. Оптимизация решения: как решать быстрее
Решать 18 задание вручную долго, но есть способы ускорить процесс:
Способ 1. Используйте двоичные маски.
Если в условии есть x&28, сразу запишите 28 в двоичном виде: 00011100. Это значит, что проверяются биты 2, 3 и 4 (нумерация с 0). Аналогично поступайте с другими числами.
Способ 2. Исключайте заведомо неподходящие А.
Например, если в формуле есть x&A ≠ 0, то А должно иметь хотя бы один бит, установленный в 1. Значит, A=0 можно сразу отбросить.
Способ 3. Используйте Power Query для генерации таблиц.
Вместо ручного заполнения столбца с Способ 4. Автоматизируйте проверку А с помощью VBA.
Если вы владеете VBA, напишите скрипт для перебора А:
Dim A As Integer For A = 0 To 255 If CheckFormula(A) Then MsgBox "Минимальное A: " & A Exit Sub End If Next A End Sub Function CheckFormula(A As Integer) As Boolean ' Здесь реализуйте проверку всех x от 0 до 255 End Functionx от 0 до 255, используйте:
Данные → Получить данные → Из других источников → Пустой запрос.= {0..255}.Закрыть и загрузить.Sub FindMinA()
8. Альтернативные программы для решения
Excel — не единственный инструмент для решения 18 задания. Рассмотрим альтернативы:
1. LibreOffice Calc
Аналог Excel с аналогичными функциями. Преимущества:
- 🔹 Бесплатный.
- 🔹 Поддерживает побитовые операции через надстройки.
Недостатки: менее удобный интерфейс для работы с большими таблицами.
2. Python
Если вы владеете программированием, можно написать скрипт:
def check_A(A):
for x in range(256):
P = (x & 29) != 0
Q = (x & 12) == 0
R = (x & A) != 0
if not (not P or (not Q or R)):
return False
return True
for A in range(256):
if check_A(A):
print(f"Минимальное A: {A}")
break
3. Онлайн-калькуляторы логических выражений.
Сервисы вроде Bitwise Calculator позволяют быстро проверять поразрядные операции.
4. Wolfram Alpha
Для проверки логических выражений можно использовать запросы вида:
truth table (x & 29 != 0) -> ((x & 12 == 0) -> (x & A != 0))
⚠️ Внимание: При использовании альтернативных программ убедитесь, что они корректно работают с 8-битными числами. Например, в Python x & 29 вернёт результат для 32- или 64-битных чисел, но в контексте задачи важны только младшие 8 бит.
FAQ: Частые вопросы по 18 заданию ЕГЭ
Как быстро перевести число в двоичную систему в Excel?
Используйте функцию =ДЕС.В.ДВ(число; 8) для 8-битного представления. Например, =ДЕС.В.ДВ(17; 8) вернёт 00010001.
Если нужны отдельные биты, используйте =ОСТАТ(ЦЕЛОЕ(число/2^n); 2), где n — номер бита (от 0).
Что делать, если в задаче используются переменные x, y, z?
Создайте таблицу со всеми комбинациями переменных. Например, для 3 переменных по 8 бит каждая потребуется 224 строк, что нереально. В таких случаях:
- Анализируйте выражение на предмет упрощения (например, если
yвходит только в одну часть формулы). - Используйте символьную логику вместо перебора.
Можно ли решать 18 задание без Excel?
Да, но это займёт больше времени. Альтернативные методы:
- 📝 Ручной перебор: подходит для небольших диапазонов (например, x от 0 до 15).
- 🖥️ Программирование: Python, C++ или даже калькулятор с поддержкой побитовых операций.
- 🧮 Логические схемы: рисуйте таблицы истинности на бумаге для простых случаев.
Excel удобен тем, что позволяет визуализировать промежуточные результаты и быстро исправлять ошибки.
Как проверить, что формула тождественно истинна?
Нужно убедиться, что для всех возможных значений переменных формула возвращает ИСТИНА. В Excel:
- Заполните столбец со всеми значениями
x(от 0 до 255). - Добавьте столбец с итоговой формулой.
- Используйте
=СЧЁТЕСЛИ(диапазон; "ЛОЖЬ"). Если результат = 0, формула тождественно истинна.
Что делать, если в условии есть отрицание импликации?
Отрицание импликации ¬(A → B) эквивалентно A ∧ ¬B. В Excel это записывается как:
=И(A; НЕ(B))
Например, для выражения ¬((x&17 = 0) → (x&A ≠ 0)) формула будет:
=И(И(ОСТАТ(A2;2)=0; ОСТАТ(ЦЕЛОЕ(A2/16);2)=1); ОСТАТ(ЦЕЛОЕ(A2/4);2)=0; ОСТАТ(ЦЕЛОЕ(A2/2);2)=0)