Данное задание в ЕГЭ по информатике включает в себя знания темы “Алгебра логики”. Для успешного решения необходимо хорошо знать логические операторы. Без этих знаний задание приобретает вид “иероглифов”. Так как неясно, что делать с этими “непонятными” символами.
Для начала необходимо повторить логические операции. В данном задании существует пять разновидностей логических знаков. Среди них дизъюнкция (логическое сложение), конъюнкция (логическое умножение), инверсия (логическое отрицание), импликация (логическое суждение) и эквиваленция (логическое равенство).
Логические операторы
У каждого логического оператора существует своя таблица истинности. Там показаны все возможные комбинации переменных и результата (после применения знака).
Дизъюнкция | Логическое сложение | Логическое ИЛИ
Обозначается знаком — V
Истина тогда, когда хоть одна из переменных истина.
Конъюнкция | Логическое умножение | Логическое И
Обозначается знаком — ^
Истина тогда, когда обе переменных истины.
Инверсия | Логическое отрицание
Обозначается знаком — ¬
Меняет значение на противоположное.
Импликация
Обозначается знаком — →
Ложно тогда, когда из единицы идёт ноль.
Эквиваленция | Логическое равенство
Обозначается знаком — ≡
Истинно тогда, когда обе переменные одинаковые (равны).
Текущее задание ЕГЭ по информатике можно делать разнообразными способами. Можно посчитать его вручную, можно сделать его в Excel (или аналогичном редакторе электронных таблиц). Также можно составить программу на любом удобном языке программирования.
Исходя из вышесказанного есть два варианта решения: ручной расчёт, автоматизированный расчёт. Поскольку с 2021 года ЕГЭ по информатике проводится в компьютерной форме, то и логичнее будет использовать автоматизацию расчётов. Это сэкономит время на экзамене и понизит вероятность ошибки, по сравнению с ручным методом решения данной задачи.
Из автоматизированного метода решения выберем язык программирования — Python. Он очень удобен при набросках, расчётах, да и в решении задач в целом. Теперь разберёмся на практике с решением задач.
Задача №1
Задание:
Дан фрагмент частично заполненной таблицы, необходимо определить, какому столбцу соответствует каждая из переменных: x, y, z (строки в таблице не повторяются).
Логическое выражение — (x ∨ y) → (z ≡ x)
Решение:
Хоть и таблица не заполнена это не страшно. Найдём все возможные комбинации для данного логического выражения. Для начала необходимо прописать функции для эквиваленции и импликации (можно также произвести преобразование к базовым логическим операторам).
Функции написаны исходя из данных в таблицах истинности. После этого можно написать уже основную часть нашей программы.
Здесь содержится три цикла, которые перебирают все возможные комбинации для трёх переменных (x, y, z). Присутствует счётчик строки (необязательный компонент, просто для наглядности), сама результирующая функция и вывод на экран.
Вывод будет выглядеть следующим образом:
Выводит целых восемь строк, но нам для решения нужно лишь те, в которых результирующая функция равна нулю. Поэтому отбросим лишние строки, которые равны единице. Для этого применим условие. Также уберём счётчик строк (он не особо нам нужен).
Теперь вывод информации будет выглядеть несколько иначе:
Методом логического мышления определяем, смотря на таблицу, расположение переменных по столбцам. Понимаем, что первая строка в таблице, это вторая получившееся у нас. Следовательно, пропущено значение — единица. И первый столбец — X.
Дальше пробуем заполнить вторую строку в таблице. Смотрим на получившийся результат и понимаем, что наша первая строка не подходит, т.к. X уже определён, а Y и Z там равны единице. Следовательно, подходит наша третья строка под вторую в таблице.
После внимательного заполнения получаем ответ — XZY.
Задача №2
Задание:
Дан фрагмент частично заполненной таблицы, необходимо определить, какому столбцу соответствует каждая из переменных: x, y, w, z (строки в таблице не повторяются).
Логическое выражение — (x ≡ ( w ∨ y)) ∨ ((w→ z) ∧ (y → w))
Решение:
В данном задании на одну переменную больше, но это никак не повлияет на алгоритм решения. Делаем абсолютно аналогично. Создаём также функции для импликации и эквиваленции. А после уже пишем основной код и результирующую функцию.
Здесь уже четыре цикла (из-за количества переменных) и другая результирующая функция. Теперь посмотрим, что выведет программа.
Исходя из полученных данных и анализа таблицы, найдём пропущенные значения. В первом и в четвёртом столбцах таблицы есть две единицы, следовательно, там могут быть Y и W. От сюда следует, что в третьем столбце будет Z (потому что в полученном фрагменте у X одни нули). Оставшийся столбец — X.
Итого наша таблица приобретает следующий вид (старайтесь фиксировать найденные фрагменты):
Тут видим, что третью и четвёртую строку из нашего фрагмента определили как первую и третью в таблице. Дальше очень внимательно смотрим на фрагмент и на новую таблицу и понимаем, что подходит первая строка. После получаем ответ — YXZW. Главное — найти соответствие, чтобы "пазл" совпал.
Понравилась статья? Хочешь разбираться в информатике, программировании и уметь работать в разных программах? Тогда ставь лайк, подпишись на канал и поделись статьей с друзьями! Остались или появились вопросы — спроси в комментариях!