"Информатика (базовый уровень)", Гейн А.Г., Юнерман Н.А.
Логические функции связывают значения переменных с результатом «истина» или «ложь», а логические выражения записывают такие зависимости с помощью операций НЕ, И и ИЛИ. Они помогают формально описывать условия задач, проверять их для разных исходных данных и находить все подходящие варианты. Главное — понимать смысл каждой операции, соблюдать порядок вычислений и не пропускать строки в таблице истинности.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Логическая переменная — величина, принимающая только два значения: 0 («ложь») или 1 («истина»). Например, переменная A может обозначать ответ на вопрос, выполнено ли некоторое условие. Два значения нужны, чтобы однозначно отмечать, верно условие или нет, и использовать его в вычислениях.
Логическая функция — зависимость, которая по значениям логических переменных определяет значение 0 или 1. Например, функция от A и B задаёт результат отдельно для наборов 00, 01, 10 и 11. Понятие функции позволяет описывать правило, а не разбирать каждый возможный случай заново.
Логическое выражение — запись, составленная из логических переменных, констант и логических операций. В выражении A ∧ ¬B переменные соединены операциями И и НЕ, поэтому его результат можно вычислить для любого набора A и B. Такая запись нужна, чтобы кратко и точно представить условие задачи.
Таблица истинности — таблица, показывающая значение логического выражения при всех наборах значений его переменных. В ней каждая строка соответствует одному набору, а последний столбец содержит результат. Таблица помогает проверить выражение и увидеть, при каких условиях оно истинно.
Два значения логических переменных связаны с тем, что рассматриваемое высказывание либо истинно, либо ложно: третьего варианта в классической логике нет. Числа 1 и 0 удобны как условные обозначения этих состояний, а не как обычные числа для арифметических вычислений. Поэтому при работе с переменной сначала выясняют, какое высказывание за ней стоит, а затем ставят ему в соответствие 1 или 0.
Операции преобразуют значения переменных по определённым правилам, а значит, сами задают логические функции. Отрицание НЕ меняет значение на противоположное: если A = 1, то ¬A = 0, и наоборот. Конъюнкция И требует истинности обоих условий, тогда как дизъюнкции ИЛИ достаточно истинности хотя бы одного; благодаря этим правилам можно составлять более сложные условия.
Чтобы записать условие задачи, сначала выделяют простые высказывания и обозначают их переменными. Затем слова «не», «и», «или» заменяют соответствующими операциями, сохраняя смысл условия: например, «A истинно и B ложно» записывают как A ∧ ¬B. Такой перевод нужен, чтобы проверять условие одинаковым способом для любых исходных данных, а не полагаться на догадки.
В сложном выражении результат зависит от того, какие операции выполнены первыми, поэтому порядок нельзя выбирать произвольно. Скобки задают нужную последовательность явно; если их нет, используют приоритет: сначала отрицание, затем конъюнкция, затем дизъюнкция. Например, A ∨ B ∧ C читают как A ∨ (B ∧ C), а не как (A ∨ B) ∧ C. При сомнении полезно расставить скобки и вычислять промежуточные части по очереди.
Таблицу истинности строят в два этапа: сначала перечисляют все наборы переменных, затем вычисляют выражение для каждой строки. У одной переменной два набора, у двух — четыре, у трёх — восемь; в общем случае для n переменных требуется 2ⁿ строк. Полный перебор нужен потому, что только он гарантирует проверку всех возможных сочетаний, в том числе тех, которые легко упустить при рассуждении.
| Операция | Обозначение | Условие получения 1 | Таблица значений |
|---|---|---|---|
| Отрицание (НЕ) | ¬A | Исходное значение равно 0 | A: 0, 1; ¬A: 1, 0 |
| Конъюнкция (И) | A ∧ B | Оба операнда равны 1 | 00 → 0; 01 → 0; 10 → 0; 11 → 1 |
| Дизъюнкция (ИЛИ) | A ∨ B | Хотя бы один операнд равен 1 | 00 → 0; 01 → 1; 10 → 1; 11 → 1 |
| Сложное логическое выражение | Например, A ∧ (B ∨ C) | Результат зависит от значений переменных и порядка операций | Сначала вычислить B ∨ C, затем выполнить И с A |
Чтобы пользоваться таблицей, найдите строку с нужными значениями переменных и прочитайте результат операции. Для выражения из нескольких операций сначала примените правила в скобках и столбцы с промежуточными результатами. Так можно последовательно получить итог, не смешивая значения исходных переменных с результатами действий.
У переменной A только два возможных значения, поэтому в таблице нужны две строки. Отрицание заменяет каждое из них на противоположное: единицу на ноль, а ноль на единицу. Запишем вычисления по строкам.
Ответ: таблица имеет строки A = 0, ¬A = 1 и A = 1, ¬A = 0. Проверка проста: в каждом случае результат должен отличаться от исходного значения.
Три переменные дают восемь наборов, поэтому нужно проверить каждый из них. Скобки показывают, что сначала вычисляется B ∨ C, а уже потом его результат соединяется с A операцией И. Выражение будет истинным только тогда, когда A = 1 и внутри скобок получилось 1.
Ответ: выражение истинно для наборов 101, 110 и 111. Перед завершением полезно проверить, что каждая единица в итоговом столбце стоит напротив A = 1, а внутри скобок в этой строке есть хотя бы одна единица.
Скобки объединяют два первых условия: достаточно, чтобы истинным было хотя бы одно из A и B. Кроме того, отрицание C требует, чтобы C было равно 0. Значит, нужно найти строки, где одновременно выполнены оба требования.
Ответ: выражение истинно при (A, B, C) = (0, 1, 0), (1, 0, 0) и (1, 1, 0). Проверка по смыслу подтверждает результат: C ложно, а из A и B истинно хотя бы одно.
Иногда считают, что ИЛИ истинно лишь тогда, когда истинны оба высказывания. Это происходит из-за смешения бытового понимания «или» с операцией И; в логике достаточно хотя бы одной единицы. Проверьте строку 10: для A ∨ B результат равен 1, а для A ∧ B — 0.
При отрицании сложного выражения можно перевернуть не тот результат или забыть изменить 0 на 1 и 1 на 0. Часто отрицание ошибочно относят только к ближайшей переменной, хотя скобки могут относить его ко всему выражению. Чтобы проверить себя, определите, на какую часть указывает знак ¬, вычислите эту часть и только затем поменяйте итог.
Если выполнять операции в произвольном порядке или пропустить скобки, получится другое выражение и, возможно, другая таблица. Причина ошибки — попытка считать слева направо без учёта приоритета. Перед вычислением отметьте скобки и порядок действий, а затем сравните, одинаково ли записаны промежуточные результаты.
Пропуск наборов в таблице приводит к тому, что некоторые возможные результаты остаются непроверенными. Такое случается, если строки перечисляют на глаз или случайно повторяют одну из них. Сверьте число строк с 2ⁿ и проверьте, что каждый набор встречается ровно один раз.
Для работы с логическими функциями нужны понятия высказывания, истинности и ложности, а также умение читать таблицы и двоичные значения. Освоенные операции применяют в алгоритмах и программах: с их помощью задают условия ветвления и продолжения циклов. Логика также помогает проектировать схемы, составлять запросы к базам данных и решать задачи, где перебирают варианты и отбирают подходящие.
Чем логическая функция отличается от логического выражения?
Функция — это зависимость, которая каждому набору значений переменных ставит в соответствие 0 или 1. Выражение — конкретная запись этой зависимости с помощью переменных, констант и операций.
Почему у двух логических переменных в таблице истинности получается четыре строки?
У каждой переменной два возможных значения. Для двух переменных есть все пары: 00, 01, 10 и 11, то есть 2² = 4 набора.
Чем операция И отличается от операции ИЛИ?
И даёт 1, только если оба операнда равны 1. ИЛИ даёт 1, если хотя бы один операнд равен 1, и становится ложным лишь при двух нулях.
Как определить порядок выполнения операций в логическом выражении?
Сначала выполняют действия в скобках, затем отрицание, конъюнкцию и дизъюнкцию. Если скобок нет, этот приоритет помогает определить, какие действия выполнять раньше.
Можно ли по таблице истинности восстановить логическое выражение?
Да, можно составить выражение, которое даёт те же результаты для всех наборов переменных. Например, для каждой строки с результатом 1 записывают условие, соответствующее этой строке, а затем объединяют такие условия операцией ИЛИ.
§ 36. Логические функции и логические выражения