Диз’юнкція
Матеріал з Seo Wiki - Пошукова Оптимізація та Програмування
Диз'юнкція- логічна операція, за своїм застосуванням максимально наближена до союзу "або" в сенсі "або те, або це, або обидва відразу". Синоніми:логічне «АБО»,що включає «АБО»,логічне складення, іноді просто«АБО».
Диз'юнкція може бутибінарноюоперацією, тобто мати два операнда,тринарноюоперацією, тобто мати три операнда абоn-арноюоперацією, тобто мати n операндів . Запис може бутипрефіксний- знак операції стоїть перед операндами (польський запис),інфіксний- знак операції стоїть між операндами абопостфіксний- знак операції стоїть після операндів. При числі операндів більше 2-х префіксних і постфіксних записів економічніше. Найчастіше зустрічаються такі варіанти запису:
Зміст
Бульова алгебра
У булевій алгебрі диз'юнкція - це функція двох, трьох або більше змінних (вони ж - операнди операції, вони - аргументи функції). Правило: результат дорівнює
0 якщо всі операнди рівні
0; у решті випадків результат дорівнює
a \lor b
Бінарної диз'юнкції відповідає бінарна функціяf(10,1,1110)2(x, y)=f(2,1,14)10(x, y). Таблиця істинності для тринарної (трихоперандної) диз'юнкції:
| 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 |
| 1 | 1 | 0 | 1 |
| 0 | 0 | 1 | 1 |
| 1 | 0 | 1 | 1 |
| 0 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
Тринарної диз'юнкції відповідає тринарна функціяf(11,1,11111110)2(x, y)=f(3,1,254)10(x, y).
Багатозначна логіка
У багатозначній логіці операція диз'юнкції може визначатися іншими способами. Найчастіше застосовується схема: a \ lor b = max(a, b) , де
a, b \in [0, 1]. Можливі інші варіанти. Як правило, намагаються зберегти сумісність із булевою алгеброю для значень операндів.
Класична логіка
У класичному вирахуванні висловлювань властивості диз'юнкції визначаються за допомогою аксіом. Класичне обчислення висловлювань може бути задано різними системами аксіом, і деякі з них описуватимуть властивості диз'юнкції. Один із найпоширеніших варіантів включає 3 аксіоми для диз'юнкції:
(a \to c) \to ((b \to c) \to ((a \lor b) \to c))
За допомогою цих аксіом можна довести інші формули, які містять операцію диз'юнкції. Зверніть увагу, що в класичному обчисленні висловлювань не відбувається обчислення результату за значеннями операндів (як у булевій алгебрі), а потрібно довести формулу як єдине ціле на основі аксіом та правил виведення.
Програмування
У комп'ютерних мовах використовують два основних варіанти диз'юнкції: логічне «АБО» і побітове «АБО». Наприклад, у мовах C/C++ логічне «АБО» позначається символом "", а побітове - символом "". У мовах Pascal/Delphi обидва види диз'юнкції позначаються з допомогою ключового слова «or», а результат дії визначається типом операндов. Якщо операнди мають логічний тип (наприклад, Boolean) - виконується логічна операція, якщоцілий (наприклад, Byte) - порозрядна.
Логічне «АБО» застосовується в операторах умовного переходу або в аналогічних випадках, коли потрібне отримання результату
Результат дорівнюватиме
false , якщо обидва операнди рівні
0 . У будь-якому іншому випадку результат дорівнюватиме
При цьому застосовується стандартна угода: якщо значення лівого операнда дорівнює
true , то значення правого операнда не обчислюється (замість
b може бути складна формула). Така угода прискорює виконання програми та є корисним прийомом у деяких випадках. Компілятор Delphi підтримує спеціальну директиву, що включає
У цьому прикладі, завдяки перевірці у лівому операнді, у правому операнді ніколи не відбудеться розіменування нульового покажчика.
Побітове «АБО» виконує звичайну операцію булевої алгебри для всіх бітів лівого та правого операнда попарно. Наприклад,
| якщо |
| a = |
01100101_2
00101001_2
01101101_2
Зв'язок із природною мовою
Часто вказують на подібність між диз'юнкцією та союзом «або» в природній мові, коли він вживається в сенсі «або те, або те, або обидва відразу». У юридичних документах часто пишуть: «і/або», маючи на увазі «чи те, чи те, чи обидва одразу». Складове твердження «A та/або B» вважається хибним, коли хибні обидва твердження A і B, інакше складне твердження істинно. Це точно відповідає визначенню диз'юнкції в булевій алгебрі, якщо «істину» позначати як 1 , а «брехня» як 0 .
Неоднозначністьприродної мови полягає в тому, що союз «або» використовується у двох значеннях: то дляпозначення диз'юнкції, то для іншої операції - виключає «АБО».