Логические выражения: таблица истинности на простых примерах
Чтобы составить таблицу истинности логического выражения, выпишите все сочетания значений его переменных и вычислите результат для каждой строки. Для двух переменных нужны четыре сочетания: 00, 01, 10 и 11; для трёх — восемь. Значение 1 означает истину, 0 — ложь. Отрицание меняет значение на противоположное, операция «И» даёт 1 только при истинности обоих условий, а «ИЛИ» — когда истинно хотя бы одно. Сложное выражение разбивайте на части и считайте их в отдельных столбцах: так видны порядок действий и место возможной ошибки.
Содержание
Что такое логическое высказывание
Высказывание — утверждение, которому в рассматриваемых условиях можно приписать истину или ложь. «Число 12 делится на 3» — истинное высказывание. «Число 7 чётное» — ложное. Просьба «Открой тетрадь» и вопрос «Сколько сейчас времени?» не являются высказываниями: им нельзя приписать такое значение.
Утверждение с переменной, например «x больше 5», получает определённое значение после выбора x. При x = 8 оно истинно, при x = 2 — ложно. В таблице логического выражения буквами A, B и C обычно обозначают уже сами значения условий, а не числа, с которыми условия сравниваются.
Можно договориться: A — «число чётное», B — «число больше 10». Для 12 оба условия истинны, поэтому A = 1 и B = 1. Для 9 оба ложны: A = 0, B = 0. Но A = 1 не означает, что рассматриваемое число равно единице; это только оценка утверждения о числе.
В разных учебниках истину и ложь обозначают 1 и 0, И и Л либо True и False. Выберите один вариант и используйте его последовательно. Здесь таблицы записаны через 0 и 1, а примеры Python — через True и False.
Три основные операции
Чтобы читать формулы, сначала уточните обозначения. Операции могут выглядеть по-разному, но их смысл сохраняется. Скобки помогают явно показать, к какой части относится действие.
| Смысл | Частые обозначения | Запись словами | Пример |
|---|---|---|---|
| Отрицание | ¬A, НЕ A | «Не A» | Число не чётное |
| Конъюнкция | A ∧ B, A & B | «A и B» | Число чётное и больше 10 |
| Дизъюнкция | A ∨ B | «A или B» | Число чётное или больше 10 |
В школьной логике обычное «ИЛИ» включающее: оно допускает истинность обоих условий. Если число 12 чётное и больше 10, выражение A ∨ B истинно. Это отличается от бытового выбора «либо чай, либо кофе, но не оба».
Исключающее «ИЛИ» означает, что истинно ровно одно из двух условий. Оно имеет отдельное обозначение, например A ⊕ B. Не заменяйте им обычную дизъюнкцию, если такого требования нет в условии.
Таблицы для НЕ, И и ИЛИ
Отрицание работает с одним значением. Если A истинно, ¬A ложно; если A ложно, ¬A истинно. Повторное отрицание возвращает первоначальное значение: ¬(¬A) = A.
| A | ¬A |
|---|---|
| 0 | 1 |
| 1 | 0 |
Для операций с двумя переменными нужны четыре сочетания. При «И» достаточно одного ложного условия, чтобы весь результат стал ложным. При «ИЛИ» достаточно одного истинного условия, чтобы результат стал истинным.
| A | B | A ∧ B | A ∨ B |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 |
Последняя строка особенно важна: 1 ∨ 1 = 1. Логическое «ИЛИ» не является обычным сложением, поэтому ответ 2 здесь невозможен. Аналогично 1 ∧ 0 = 0 — это результат проверки двух условий, а не указание на число предметов.
Можно проверить смысл через учебную ситуацию. A — «задание решено», B — «ответ проверен». Условие «задание решено и ответ проверен» выполнено только при A = 1, B = 1. Если работа решена, но не проверена, весь результат A ∧ B равен 0.
Как не пропустить сочетания переменных
Каждая независимая логическая переменная может принимать два значения. Для n переменных таблица содержит 2ⁿ строк с сочетаниями. Заголовок и вспомогательные столбцы в это число не входят. Число строк зависит от разных переменных, а не от количества операций.
Для двух переменных удобно записать 00, 01, 10, 11. В столбце A значение меняется через две строки, в столбце B — через одну. Для трёх переменных перечисление выглядит так:
| A | B | C |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 0 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
| 1 | 1 | 1 |
Первый столбец меняется после четырёх строк, второй — после двух, третий — в каждой строке. Такой порядок помогает избежать повторов и пропусков. Сочетания можно записывать и в другом порядке, если каждое присутствует ровно один раз.
Выражение A ∧ ¬A содержит только одну переменную A, поэтому имеет две строки. Буква встречается дважды, но её значения в пределах одной строки должны совпадать. Нельзя в одной части считать A истинным, а в другой ложным.
Пошаговый пример: A ∨ (B ∧ ¬A)
Сначала разберите выражение на действия. Нужно получить ¬A, затем B ∧ ¬A, затем соединить результат с A через «ИЛИ». Отдельные столбцы сохраняют все промежуточные значения.
| A | B | ¬A | B ∧ ¬A | A ∨ (B ∧ ¬A) |
|---|---|---|---|---|
| 0 | 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 | 1 |
| 1 | 1 | 0 | 0 | 1 |
Прочитаем вторую строку. При A = 0 отрицание ¬A = 1. Значение B равно 1, значит B ∧ ¬A = 1. Остаётся 0 ∨ 1, результат равен 1. В третьей строке промежуточная часть равна 0, но A = 1, поэтому итоговое «ИЛИ» всё равно даёт 1.
Последний столбец — 0, 1, 1, 1 — совпадает с таблицей A ∨ B. Значит, A ∨ (B ∧ ¬A) и A ∨ B равнозначны: при любых значениях A и B результат одинаковый. Совпадение одной случайной строки для такого вывода недостаточно; нужны все сочетания.
Скобки и порядок действий
В выражениях с НЕ, И и ИЛИ обычно сначала выполняют отрицание, затем конъюнкцию, затем дизъюнкцию. Скобки меняют порядок: их содержимое рассматривают как отдельную часть. В задачах с дополнительными операциями проверяйте принятую в учебнике таблицу приоритетов.
Сравним A ∨ (B ∧ C) и (A ∨ B) ∧ C при A = 1, B = 0, C = 0. В первом случае B ∧ C = 0, затем 1 ∨ 0 = 1. Во втором A ∨ B = 1, затем 1 ∧ 0 = 0. Результаты разные, поэтому скобки нельзя переставлять произвольно.
Есть и разница между ¬A ∧ B и ¬(A ∧ B). При A = 1, B = 0 первое выражение даёт 0 ∧ 0 = 0. Второе даёт ¬0 = 1. В первой записи отрицается только A, во второй — результат всей конъюнкции.
При оформлении сначала выпишите части со скобками, затем добавьте столбцы для отрицаний и следующих действий. Если вычислять длинную строку сразу в уме, трудно заметить, какое значение было получено ошибочно.
Как отрицать составное условие
Фраза «не выполнены оба условия» часто вызывает путаницу. Отрицание выражения A ∧ B истинно, если хотя бы одно из условий ложно. Это не требует, чтобы ложными были оба. Поэтому ¬(A ∧ B) = ¬A ∨ ¬B.
Для отрицания дизъюнкции справедливо ¬(A ∨ B) = ¬A ∧ ¬B. Если неверно, что истинно хотя бы одно условие, значит, ложны оба. Эти два правила называют законами де Моргана; их можно проверить по четырём строкам таблицы.
| A | B | ¬(A ∧ B) | ¬A ∨ ¬B | ¬(A ∨ B) | ¬A ∧ ¬B |
|---|---|---|---|---|---|
| 0 | 0 | 1 | 1 | 1 | 1 |
| 0 | 1 | 1 | 1 | 0 | 0 |
| 1 | 0 | 1 | 1 | 0 | 0 |
| 1 | 1 | 0 | 0 | 0 | 0 |
Например, A — «работа подписана», B — «указана дата». Если условие A ∧ B не выполнено, могла отсутствовать только подпись, только дата или обе записи. Нельзя из ¬(A ∧ B) сделать вывод, что и подписи, и даты точно нет.
Если встретились импликация и равнозначность
Импликация A → B читается как «если A, то B». В классической логике она ложна только при A = 1 и B = 0. Во всех остальных случаях истинна. Это формальное правило, которое не следует подменять бытовым пониманием причинной связи.
Равнозначность A ↔ B истинна, когда значения совпадают: оба 0 или оба 1. Исключающее «ИЛИ», напротив, истинно, когда значения различаются. Таблица позволяет увидеть все три правила рядом.
| A | B | A → B | A ↔ B | A ⊕ B |
|---|---|---|---|---|
| 0 | 0 | 1 | 1 | 0 |
| 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 | 0 |
Импликацию можно заменить выражением ¬A ∨ B. Когда A ложно, ¬A истинно, поэтому результат равен 1 независимо от B. Когда A истинно, результат совпадает с B. Такое объяснение и таблицы для импликации и равнозначности приведены в OpenStax.
Не путайте математическую импликацию с оператором if в программе. if проверяет условие и выбирает действия; сам по себе он не обозначает двухместную логическую операцию A → B.
Как прочитать логическое условие на Python
В Python отрицание записывают как not, конъюнкцию — как and, дизъюнкцию — как or. Для сравнения чисел используют >, <, >=, <=, == и !=. Результаты обычных сравнений — True или False.
Например, условие x >= 3 and x <= 8 истинно для чисел от 3 до 8 включительно. Можно записать короче: 3 <= x <= 8. При x = 3 обе части истинны, при x = 9 вторая ложна, поэтому всё условие ложно.
Условие x < 3 or x > 8 означает, что число лежит за пределами этого отрезка. Это отрицание предыдущего условия. На самих границах 3 и 8 оно ложно: знаки < и > строгие.
В документации Python уточняется важная особенность: and и or возвращают один из операндов, который не всегда является логическим значением. В таблицах выше операнды — логические значения; не переносите правило «получится только True или False» на произвольные строки и числа в программе.
Задания: от одной строки к полной таблице
Начните с вычисления конкретных значений, затем постройте таблицы самостоятельно. В заданиях с двумя переменными используйте порядок строк 00, 01, 10, 11, с тремя — 000, 001, 010, 011, 100, 101, 110, 111.
- При A = 0, B = 1 найдите ¬A, A ∧ B и A ∨ B.
- При A = 1, B = 0, C = 1 найдите (A ∧ B) ∨ C.
- Составьте таблицу для ¬A ∧ B.
- Составьте таблицу для ¬(A ∨ B).
- Составьте таблицу для (A ∨ B) ∧ ¬C.
- Сколько строк нужно для выражения (A ∧ B) ∨ (¬A ∧ B)?
- Равнозначны ли A ∧ B и A ∨ B? Назовите сочетание, на котором значения различаются.
- Равнозначны ли A ∨ ¬A и постоянная истина?
- Когда A ∧ ¬A истинно?
- При x = 10 вычислите условие
x >= 5 and x < 10. - При A = 0, B = 0 найдите A → B и A ↔ B.
- Запишите отрицание условия «число больше 2 и меньше 7».
Для пятого задания сначала добавьте столбцы A ∨ B и ¬C. Затем соедините их через «И». Если итоговая последовательность кажется неожиданной, объясните одну строку словами и проверьте промежуточные части.
Ответы для самопроверки
В последовательностях ниже значения перечислены в указанном порядке строк. У вас может быть другой порядок, поэтому сопоставляйте ответ с конкретным сочетанием переменных.
- ¬A = 1, A ∧ B = 0, A ∨ B = 1.
- A ∧ B = 0, затем 0 ∨ 1 = 1.
- Для ¬A ∧ B: 0, 1, 0, 0. Истинно только при A = 0, B = 1.
- Для ¬(A ∨ B): 1, 0, 0, 0. Истинно только при двух ложных переменных.
- Для (A ∨ B) ∧ ¬C: 0, 0, 1, 0, 1, 0, 1, 0. Нужны C = 0 и хотя бы одна единица среди A и B.
- Четыре строки: разных переменных две. Повторение A и B не увеличивает число сочетаний.
- Нет. Например, при A = 0, B = 1 конъюнкция равна 0, дизъюнкция — 1.
- Да. При любом A один из операндов A или ¬A истинен; результат всегда 1.
- Никогда. A и ¬A не могут быть истинны одновременно; результат всегда 0.
- False: 10 >= 5 истинно, но 10 < 10 ложно.
- A → B = 1, A ↔ B = 1. В первом случае основание ложно, во втором значения совпадают.
- «Число не больше 2 или не меньше 7», то есть x ≤ 2 или x ≥ 7. На границах отрицание исходного строгого условия истинно.
Проверочный список для таблицы
Перед сдачей посмотрите на сочетания и промежуточные столбцы. Такая проверка обнаруживает и пропуск строки, и ошибку в отдельной операции.
- Число строк равно 2ⁿ, где n — число разных переменных.
- Каждое сочетание записано ровно один раз.
- Одна переменная сохраняет значение во всех частях одной строки.
- Я учёл скобки и область действия отрицания.
- Обычное «ИЛИ» допускает истинность обоих условий.
- В таблице нет результатов 2 или −1: используются только 0 и 1.
- Равнозначность выражений проверена на всех сочетаниях.
- Для условия с числами отдельно проверены граничные значения.
Если найдено расхождение, пересчитайте строку по частям. Таблица полезна именно тем, что превращает сложное рассуждение в несколько коротких проверяемых действий.