Дизъюнкция
| В этой статье не хватает ссылок на источники информации.
Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена.
Вы можете отредактировать эту статью, добавив ссылки на авторитетные источники. Эта отметка установлена 3 ноября 2009. |
Дизъю́нкция (лат. disjunctio — разобщение), логи́ческое сложе́ние, логи́ческое ИЛИ, включа́ющее ИЛИ; иногда просто ИЛИ — логическая операция, по своему применению максимально приближённая к союзу «или» в смысле «или то, или это, или оба сразу»[1].
Дизъюнкция может быть бинарной операцией (иметь два операнда), тернарной операцией (иметь три операнда) или
-арной операцией (иметь
операндов).
Запись может быть префиксной — знак операции стоит перед операндами (польская запись), инфиксной — знак операции стоит между операндами или постфиксной — знак операции стоит после операндов. При числе операндов более 2-х префиксная и постфиксная записи экономичнее.
Чаще всего встречаются следующие варианты записи:
||
| 
.
Содержание |
Булева алгебра [править]
Определение.
Логическая функция MAX в двухзначной (двоичной) логике называется дизъюнкция (логи́ческое "ИЛИ", логи́ческое сложе́ние или просто "ИЛИ").
Правило: результат равен наибольшему операнду.
Описание.
В булевой алгебре дизъюнкция — это функция двух, трёх или более переменных (они же — операнды операции, они же — аргументы функции).
Правило: результат равен
, если все операнды равны
; во всех остальных случаях результат равен
.
| Таблица истинности | ||
|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Таблица истинности для тернарной (трёхоперандной) дизъюнкции:
| X | Y | Z | X Y Z |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 |
| 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 |
Многозначная логика [править]
Операция, называемая в двоичной логике дизъюнкция, в многозначных логиках называется максимум:
, где
, а
— значность логики. Возможны и другие варианты. Как правило, стараются сохранить совместимость с булевой алгеброй для значений операндов
.
Следует отметить, что название этой операции максимум имеет смысл в логиках с любой значностью, в том числе и в двоичной логике, а названия дизъюнкция, логи́ческое "ИЛИ", логическое сложе́ние и просто "ИЛИ" имеют смысл только в двоичной логике, а при переходе к многозначным логикам теряют смысл.
Классическая логика [править]
В классическом исчислении высказываний свойства дизъюнкции определяются с помощью аксиом. Классическое исчисление высказываний может быть задано разными системами аксиом, и некоторые из них будут описывать свойства дизъюнкции. Один из самых распространённых вариантов включает 3 аксиомы для дизъюнкции:



С помощью этих аксиом можно доказать другие формулы, содержащие операцию дизъюнкции. Обратите внимание, что в классическом исчислении высказываний не происходит вычисления результата по значениям операндов (как в булевой алгебре), а требуется доказать формулу как единое целое на основе аксиом и правил вывода.
Схемотехника [править]
![]() |
![]() |
![]() |
|---|---|---|
| 0 | 0 | 0 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 1 | 1 |
Мнемоническое правило для дизъюнкции с любым количеством входов звучит так: На выходе будет:
- "1" тогда и только тогда, когда хотя бы на одном входе есть «1»,
- "0" тогда и только тогда, когда на всех входах «0»
Теория множеств [править]
С точки зрения теории множеств, дизъюнкция аналогична операции объединения.
Программирование [править]
В компьютерных языках используется два основных варианта дизъюнкции: логическое «ИЛИ» и побитовое «ИЛИ». Например, в языках C/C++ логическое «ИЛИ» обозначается символом "||", а побитовое — символом "|". В языках Pascal/Delphi оба вида дизъюнкции обозначаются с использованием ключевого слова «or», а результат действия определяется типом операндов. Если операнды имеют логический тип (например, Boolean) — выполняется логическая операция, если целочисленный (например, Byte) — поразрядная.
Логическое «ИЛИ» применяется в операторах условного перехода или в аналогичных случаях, когда требуется получение результата
или
. Например:
if (a || b) { /* какие-то действия */ };
Результат будет равен
, если оба операнда равны
или
. В любом другом случае результат будет равен
.
При этом применяется стандартное соглашение: если значение левого операнда равно
, то значение правого операнда не вычисляется (вместо
может стоять сложная формула). Такое соглашение ускоряет исполнение программы и служит полезным приёмом в некоторых случаях. Компилятор Delphi поддерживает специальную директиву, включающую
{$B-}
или выключающую
{$B+}
подобное поведение. Например, если левый операнд проверяет необходимость вычисления правого операнда:
if (a == NULL || a->x == 0) { /* какие-то действия */ };
В этом примере, благодаря проверке в левом операнде, в правом операнде никогда не произойдёт разыменования нулевого указателя.
Побитовое «ИЛИ» выполняет обычную операцию булевой алгебры для всех битов левого и правого операнда попарно. Например,
| если | |
| a = | ![]() |
| b = | ![]() |
| то | |
| a ИЛИ b = | ![]() |
Связь с естественным языком [править]
Часто указывают на сходство между дизъюнкцией и союзом «или» в естественном языке, когда он употребляется в смысле «или то, или то, или оба сразу». В юридических документах часто пишут: «и (или)», иногда «и/или», подразумевая «или то, или то, или оба сразу». Составное утверждение «A и/или B» считается ложным, когда ложны оба утверждения A и B, в противном случае составное утверждение истинно. Это в точности соответствует определению дизъюнкции в булевой алгебре, если «истину» обозначать как
, а «ложь» как
.
Неоднозначность естественного языка заключается в том, что союз «или» используется в двух значениях: то для обозначения дизъюнкции, то для другой операции — исключающего «ИЛИ».
Примечания [править]
- ↑ Гутников В.С. Интегральная электроника в измерительных приборах // Энергия. — 1974. — С. 14-16.



Y 




