Диз'юнкція (логіка)

(Перенаправлено з Диз'юнкція)

Диз'юнкція (лат. disjunctio — розділення) (операція OR) — двомісна логічна операція, що має значення «істина», якщо хоча б один з операндів має значення «істина». Операція відображає вживання сполучника «або» в логічних висловлюваннях. Диз'юнкція є бінарною операцією, тобто має два операнда. Запис може бути префіксним (знак операції стоїть перед операндами), інфіксним (знак операції стоїть між операндами) або постфіксним (знак операції стоїть після операндів). За кількості операндів понад 2 префіксний і постфіксний записи економніші.

Позначається: в математиці та логіці як , у програмуванні як | чи or. Найчастіше трапляються такі варіанти запису: a||b, a|b, ab, a+b, a or b.

У техніці операцію диз'юнкції втілює логічний вентиль АБО.

ВизначенняРедагувати

 
Діаграма Венна для операції  

У булевій алгебрі диз'юнкція — це функція двох, трьох або більшої кількості змінних (вони ж — операнди операції, вони ж — аргументи функції). Правило: результат дорівнює 0, якщо всі операнди рівні 0; у всіх інших випадках результат дорівнює 1.

Таблиця істинності виглядає таким чином:

     
хибність хибність хибність
хибність істина істина
істина хибність істина
істина істина істина

Відповідною операцією в теорії множин є об'єднання множин.

ВластивостіРедагувати

 
 
 
 
 
 
 

Функціональна повнотаРедагувати

Множина операцій   є функціонально повною:

 
 
 
 

Двійкові операціїРедагувати

Диз'юнкція часто використовується для двійкових операцій. Наприклад: Логічний елемент 2АБО AB f (A B)

  • 0   0 = 0
  • 0   1 = 1
  • 1   0 = 1
  • 1   1 = 1
  • 1010   1110 = 1110

Мнемонічне правило для диз'юнкції з будь-якою кількістю входів звучить так: На виході буде: «1» тоді й тільки тоді, коли хоча б на одному вході є «1», «0» тоді й тільки тоді, коли на всіх входах «0».

Багатозначна логікаРедагувати

У багатозначній логіці операція диз'юнкції може визначатися іншими способами. Найчастіше застосовують схему: a b= max(a, b), де a, b[0,1]. Можливі й інші варіанти. Як правило, намагаються зберегти сумісність із булевою алгеброю для значень операндів 0, 1.

ПрограмуванняРедагувати

У комп'ютерних мовах використовують два основні варіанти диз'юнкції: логічне «АБО» і побітове «АБО». Наприклад, у мовах C / C++ логічне «АБО» позначається символом "||", а побітове — символом "|". У мовах Pascal / Delphi обидва види диз'юнкції позначають із використанням ключового слова «or», а результат дії визначається типом операндів. Якщо операнди мають логічний тип (наприклад, Boolean), то виконується логічна операція; якщо цілочисельний (наприклад, Byte) — порозрядне. Логічне «АБО» застосовується в операторах умовного переходу або в аналогічних випадках, коли потрібне отримання результату false або true. Наприклад:

if  (a || b) {/* певні дії */}; 

Результат буде дорівнювати false, якщо обидва операнда рівні false або 0. За будь-яких інших умов результат буде дорівнювати true. При цьому справедлива стандартна умова: якщо значення лівого операнда є true, то значення правого операнда не обчислюється (замість b може стояти будь-яка складна формула). Це прискорює виконання програми і стає у пригоді за деяких обставин. Побітове «АБО» виконує звичайну операцію булевої алгебри для всіх бітів лівого і правого операнда попарно. Наприклад, якщо a = 01100101 b = 00101001, то a АБО b = 01101101

Див. такожРедагувати

ЛітератураРедагувати