Перейти к содержимому
Учи.Онлайн Выбрать школу
Статья

Логические выражения: таблица истинности на простых примерах

Чтобы составить таблицу истинности логического выражения, выпишите все сочетания значений его переменных и вычислите результат для каждой строки. Для двух переменных нужны четыре сочетания: 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.

  1. При A = 0, B = 1 найдите ¬A, A ∧ B и A ∨ B.
  2. При A = 1, B = 0, C = 1 найдите (A ∧ B) ∨ C.
  3. Составьте таблицу для ¬A ∧ B.
  4. Составьте таблицу для ¬(A ∨ B).
  5. Составьте таблицу для (A ∨ B) ∧ ¬C.
  6. Сколько строк нужно для выражения (A ∧ B) ∨ (¬A ∧ B)?
  7. Равнозначны ли A ∧ B и A ∨ B? Назовите сочетание, на котором значения различаются.
  8. Равнозначны ли A ∨ ¬A и постоянная истина?
  9. Когда A ∧ ¬A истинно?
  10. При x = 10 вычислите условие x >= 5 and x < 10.
  11. При A = 0, B = 0 найдите A → B и A ↔ B.
  12. Запишите отрицание условия «число больше 2 и меньше 7».

Для пятого задания сначала добавьте столбцы A ∨ B и ¬C. Затем соедините их через «И». Если итоговая последовательность кажется неожиданной, объясните одну строку словами и проверьте промежуточные части.

Ответы для самопроверки

В последовательностях ниже значения перечислены в указанном порядке строк. У вас может быть другой порядок, поэтому сопоставляйте ответ с конкретным сочетанием переменных.

  1. ¬A = 1, A ∧ B = 0, A ∨ B = 1.
  2. A ∧ B = 0, затем 0 ∨ 1 = 1.
  3. Для ¬A ∧ B: 0, 1, 0, 0. Истинно только при A = 0, B = 1.
  4. Для ¬(A ∨ B): 1, 0, 0, 0. Истинно только при двух ложных переменных.
  5. Для (A ∨ B) ∧ ¬C: 0, 0, 1, 0, 1, 0, 1, 0. Нужны C = 0 и хотя бы одна единица среди A и B.
  6. Четыре строки: разных переменных две. Повторение A и B не увеличивает число сочетаний.
  7. Нет. Например, при A = 0, B = 1 конъюнкция равна 0, дизъюнкция — 1.
  8. Да. При любом A один из операндов A или ¬A истинен; результат всегда 1.
  9. Никогда. A и ¬A не могут быть истинны одновременно; результат всегда 0.
  10. False: 10 >= 5 истинно, но 10 < 10 ложно.
  11. A → B = 1, A ↔ B = 1. В первом случае основание ложно, во втором значения совпадают.
  12. «Число не больше 2 или не меньше 7», то есть x ≤ 2 или x ≥ 7. На границах отрицание исходного строгого условия истинно.

Проверочный список для таблицы

Перед сдачей посмотрите на сочетания и промежуточные столбцы. Такая проверка обнаруживает и пропуск строки, и ошибку в отдельной операции.

  • Число строк равно 2ⁿ, где n — число разных переменных.
  • Каждое сочетание записано ровно один раз.
  • Одна переменная сохраняет значение во всех частях одной строки.
  • Я учёл скобки и область действия отрицания.
  • Обычное «ИЛИ» допускает истинность обоих условий.
  • В таблице нет результатов 2 или −1: используются только 0 и 1.
  • Равнозначность выражений проверена на всех сочетаниях.
  • Для условия с числами отдельно проверены граничные значения.

Если найдено расхождение, пересчитайте строку по частям. Таблица полезна именно тем, что превращает сложное рассуждение в несколько коротких проверяемых действий.