🎓 Логические формулы важно уметь решать как на ЕГЭ по информатике, так и в программировании. Задание № 2 ЕГЭ как раз предназначено для отработки этого умения.
❗ПЕРЕД ПРОЧТЕНИЕМ НАСТОЯТЕЛЬНО РЕКОМЕНДУЮ ОЗНАКОМИТЬСЯ С ДАННЫМ МАТЕРИАЛОМ ⤵
📌 ПЕРВАЯ ЧАСТЬ
📌 ВТОРАЯ ЧАСТЬ
Если данная тема вам уже знакома и логические выражения не вызывают трудностей, переходите к разбору задания № 2 ЕГЭ ⤵
📥 Условие задачи →
→ Решение данной задачи ⇪ будет состоять из 3 основных этапов:
🚨 LET'S GO →
I ЭТАП
Работа с условием задачи
📍Для успешного решения важно внимательно изучить условие, перечитать его и зафиксировать все ключевые моменты →
→ Цветным маркером выделены важные моменты, которые понадобятся для дальнейшего решения задачи:
БОЛЕЕ ПОДРОБНО О КЛЮЧЕВЫХ МОМЕНТАХ ИЗ УСЛОВИЯ ЗАДАЧИ:
- Какая логическая функция указана в условии задачи?
F = (x ∨ y) → (z ≡ х)
- Чему равна функция (F) по таблице из условия?
→ Ответ: 0. Так как в таблице истинности (F) во всех строках стоит значение 0
- Что значит «Неповторяющиеся строки» в исходной таблице?
→ Каждая строка в таблице истинности должна отличаться от другой строки. То есть все строки должны быть разными
❕Первая и вторая строки в обоих таблицах всегда различны:
1️⃣Первая таблица: 000 vs 100
2️⃣Вторая таблица: 100 vs 101
- Что необходимо найти?
→ В каком порядке будут расположены переменные (x, y, z) в исходной таблице истинности
- В каком виде нужно записать ответ?
→ В ответе напишите буквы x, y, z в том порядке, в котором идут соответствующие им столбцы
✅ Работа с условием задачи завершена. Переходим к следующему этапу →
II ЭТАП
Построение таблицы истинности в Python
📍Построение таблицы истинности можно выполнить без использования Python. Например, в Paint, Excel или на листке бумаги. В данном случае, Python эффективнее справляется с поставленной задачей.
📢 Основные моменты при создании таблицы истинности в Python:
- Определить количество переменных в задаче
📄Из условия задачи следует, что в ней используются три переменные: x, y и z.
- Запустить столько циклов (for), сколько переменных в условии
📄В данном примере 3 переменные (x, y, z) ⇒ Необходимо запустить 3 цикла (for). Циклы (for) должны быть вложенными - то есть один внутри другого.
- Добавить две команды print(), в начало и конец программы ⤵
→ Далее необходимо записать записать функцию F на язык Python
На данном этапе требуется реализовать функцию (F) в программном коде ⤵
→ Чтобы правильно записать формулу необходимо каждый логический оператор перевести на язык Python ⤵
→ Внимательно смотрим на исходную формулу (F) и определяем какие операторы нужно взять:
- V - дизъюнкция (логическое сложение)
- → - импликация
- ≡ - эквивалентность (логическое умножение)
→ Теперь смотрим на таблицу для преобразования логических выражений ⤵
→ Переписываем функцию (F) на язык Python и добавляем в исходный код ⤵
→ Теперь необходимо оставить только необходимые наборы переменных из таблицы истинности:
Нужно отставить только те значения в Python, которые тоже равны 0, как и в условии задачи
→ Отлично ✊ Таблица истинности в Python успешно построена, а необходимые комбинации переменных (x, y, z) получены. Можно переходить к следующему этапу →
III ЭТАП
Работа с таблицами
На предыдущем этапе была построена таблица истинности по функции (f) в Python. Теперь необходимо сопоставить данные в обоих таблицах (из условия и из Python) →
❕Для работы с таблицами истинности можно использовать Excel (Р7 - офис) или Paint. Необходимо перенести данные из Python и условия в Excel (Paint).
→ Для более комфортной работы с данными таблицы истинности будут представлены в таком виде ⤵
- TABLE FROM CONDITION — таблица истинности из условия
- TABLER FROM PYTHON — таблица истинности из Python
❕Важная деталь
У внимательного читателя мог возникнуть следующий вопрос:
— ПОЧЕМУ КОЛИЧЕСТВО СТРОК В ТАБЛИЦАХ РАЗНОЕ? В ПЕРВОЙ ТАБЛИЦЕ ДВЕ СТРОКИ, А ВО ВТОРОЙ ТРИ. ЭТО ОШИБКА?
Ответ:
НЕТ, ЭТО НЕ ЯВЛЯЕТСЯ ОШИБКОЙ — ТАКАЯ СИТУАЦИЯ ВОЗМОЖНА.
В данном случае первая таблица истинности содержит не все возможные наборы переменных. Проще говоря, один из наборов просто отсутствует в таблице истинности из условия (TABLE FROM CONDITION).
→ ТЕПЕРЬ ПРИСТУПИМ К РАБОТЕ С ТАБЛИЦАМИ ⤵
Определение верного порядка переменных
с помощью логических рассуждений и поиска закономерностей
Внимательно смотрим на таблицу истинности из условия (TABLE FROM CONDITION) →
📢 РАБОТА ПО СТОЛБЦАМ
Необходимо проанализировать каждый столбец.
1. В первом столбце нет никаких значений (пустые ячейки) ⤵
2. Во втором столбце записаны два нуля — возможно, именно на этот момент стоит обратить внимание❕ Второй столбец — единственный столбец, в котором точно расположены два нуля.
→ Необходимо зафиксировать данный момент и теперь посмотреть на таблицу истинности из Python ⤵
Внимательно смотрим на таблицу истинности из Python (TABLE FROM PYTHON) →
Вновь анализируем каждый столбец:
- 1 столбец : значения = 0 | 1 | 1 (пока никаких совпадений с таблицей из условия) ⤵
- 2 столбец : значения = 1 | 0 | 1 (тоже никаких закономерностей) ⤵
- 3 столбец : значения = 1 | 0 | 0 (есть совпадение 💣)
Что это значит?
— Набор для переменной (z) включает в себя два нуля. И это единственный набор в котором есть два нуля. Ни в переменной (х) ни в переменной (у) такого нет →
Получается, что и в левой, и в правой таблице существует по одному набору с двумя нулями ⤵
⭐Следовательно, можно сделать вывод, что второй столбец в таблице истинности — переменная (z)
⭐Отлично! На данном этапе удалось определить одну из переменных. Движемся дальше →
Вновь, внимательно смотрим на таблицу истинности из условия (TABLE FROM CONDITION) →
📢 РАБОТА ПО СТРОКАМ
Теперь попробуем проанализировать каждую строку.
1. В первой строке записаны два нуля. 🔒Зафиксировали данный момент ⤵
2. Во второй строке записан один ноль и две пустые ячейки. По данной строке трудно установить какие-либо закономерности ⤵
Возвращаемся к первой строке и теперь внимательно смотрим на таблицу истинности из Python (TABLE FROM PYTHON) →
Вновь анализируем каждую строку:
- 1 строка : значения = 0 | 1 | 1 (пока никаких совпадений с таблицей из условия) ⤵
- 2 строка : значения = 1 | 0 | 0 (есть совпадение 💣)
Что это значит?
— Только во второй строке Python находятся два нуля. В первой и третьей строках подобного набора значений нет →
⭐Следовательно, можно сделать вывод, что первая строка в таблице из условия и вторая строка в таблице из Python — ОДИНАКОВЫЕ
Что это значит?
— По расположению переменных в таблице Python можно попробовать определить переменные в таблице из условия →
→ Логические выводы, которые можно сделать на основе найденной закономерности:
- Обе строки содержат по два нуля ( _ 0 0 и 1 0 0)
- В первой таблице в первой строке ( _ 0 0) отсутствует одна цифра
- Следовательно, пустая ячейка в первой строке равна 1
⭐ Удалось определить значение первой строки в левой таблице из условия задачи (1 0 0).
→ ПОПРОБУЕМ ПРОДОЛЖИТЬ РАБОТУ С ДАННОЙ СТРОКОЙ ⤵
ЛОГИЧЕСКИЕ РАССУЖДЕНИЯ:
- Первая строка таблицы из условия (TABLE FROM CONDITION) содержит одну единицу и два нуля (1 0 0)
- В таблице из Python есть точно такой же набор — это было установлено ранее (1 0 0)
- В правой таблице точно определено, что (y = 0), а (z = 1). Отсюда следует, что значение 1 — это переменная (х)
Следовательно, в левой таблице единица также соответствует переменной (x) ⤵
⭐Отлично! На данном этапе удалось определить значение переменной в пустой ячейке. Движемся дальше →
Необходимо вновь посмотреть на первую строку из левой таблицы истинности:
→ 2 из 3 переменных уже определены. Поэтому, методом исключения остаётся единственный незанятый столбец — (y)
Ура! 😎 Все переменные найдены!
❕Тем не менее таблица истинности заполнена не полностью. Чтобы убедиться в правильности ответа, определим значения в пустых ячейках.
Внимательно смотрим на обе таблицы истинности (TABLE FROM CONDITION и TABLE FROM PYTHON) →
📢 РАБОТА ПО СТОЛБЦАМ
И в левой и в правой таблице есть столбец (z) который полностью определён, то есть известны все его значения →
→ ЛОГИЧЕСКИЕ РАССУЖДЕНИЯ:
- В левой таблице переменная (z) принимает только два значения — оба равны 0
- Если посмотреть на правую таблицу, можно заметить, что там присутствует набор где (z = 1)
- Следовательно, набор где (z = 1) не подходит, поскольку он отсутствует в левой таблице ⤵
✖ Поэтому набор (x = 0, y = 1, z = 1) представленный в таблице Python, можно исключить из дальнейшего анализа ⤵
Набор (х = 0, y = 1, z = 1) отсутствует в таблице истинности, приведённой в условии. Поэтому его можно вычеркнуть и исключить из правой таблицы (TABLE FROM PYTHON).
❕В дальнейшем набор (x = 0, y = 1, z = 1) рассматриваться не будет
Для нахождения недостающих значений ещё раз обратим внимание на первый столбец из таблицы Python ⤵
→ ЛОГИЧЕСКИЕ РАССУЖДЕНИЯ:
- В правой таблице переменная (х) принимает значения (1) и (1)
- Значит, и в левой таблице переменная (х) должна принимать значения 1 и 1
- Значение в пустой ячейке для переменной (х) — это 1
⭐Отлично! На данном этапе удалось определить значение переменной в пустой ячейке. Движемся дальше →
Для нахождения недостающего значения внимательно смотрим столбец (y) из таблицы Python ⤵
→ ЛОГИЧЕСКИЕ РАССУЖДЕНИЯ:
- В правой таблице переменная (y) принимает значения (0) и (1)
- Значит, и в левой таблице переменная (y) должна принимать значения 0 и 1
- Значение в пустой ячейке для переменной (y) — это 1
Ура! 😎 Все переменные найдены и все значения определены!
📍На что стоит обратить внимание:
Для корректной записи ответа необходимо вновь вернуться к I ЭТАПУ (Работа с условием задачи) ⤵
- В каком виде нужно записать ответ?
→ В ответе напишите буквы x, y, z в том порядке, в котором идут соответствующие им столбцы
Следовательно →
Ответ: xzy
😉 Good job! Keep it up! Good luck!
→ ПРОДОЛЖЕНИЕ СЛЕДУЕТ ...