Disjuncţie exclusivă
De la Wikipedia, enciclopedia liberă
Disjuncţia exclusivă, cunoscută şi ca sau exclusiv şi notată prin XOR sau EOR, este o operaţie logică asupra doi operanzi din care rezultă o valoare logică de adevărat dacă şi numai dacă unul dintre operanzi, dar nu amândoi, are valoarea adevărat.
Cuprins |
[modifică] Definiţie
În multe limbaje naturale, printre care şi limba română, interpretarea cuvântului "sau" necesită un anumit grad de atenţie. Disjuncţia exclusivă a două perechi de propoziţii, (p, q), înseamnă că p este adevărată sau q este adevărată, dar nu ambele. De exemplu, intenţia normală a frazei "Poţi urma regulile sau poţi fi descalificat" este să arate faptul că numai una din condiţii este adevărată. Spre deosebire, în logică înţelesul cuvântului "sau" este disjuncţia inclusivă, care semnifică faptul că cel puţin una din alternative este adevărată. Alte limbi, precum latina, pot avea cuvinte diferite pentru tipuri diferite de "sau".
Disjuncţia exclusivă este o operaţie asupra două valori logice, de obicei valorile a două propoziţii, care produce o valoare de adevărat dacă numai unul dintre operanzi este adevărat.
Tabelul de adevăr al lui p XOR q (scris şi p + q, p ⊕ q, sau p ≠ q) este următorul:
p | q | p XOR q |
---|---|---|
F | F | F |
F | A | A |
A | F | A |
A | A | F |
Pot fi deduse echivaleneţele următoare:
Operaţia XOR generalizată sau n-ară este adevărată atunci când numărul de biţi 1 este impar.
[modifică] Simboluri alternative
Simbolul utilizat pentru disjuncţia exclusivă variază de la un câmp de aplicare la altul, şi depinde chiar şi de proprietăţile evidenţiate într-un anumit context de discuţie. Pe lângă abrevierea "XOR", oricare dintre simbolurile următoare pot fi întâlnite:
- un semn plus (+). Acesta are sens matematic, deoarece disjuncţia exclusivă corespunde adunării modulo 2, care are următorul tabel de adunare, evident izomorf cu cel de mai sus:
p | q | p + q |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
- Utilizarea simbolului plus are avantajul că toate proprietăţile algebrice ordinare ale inelelor şi câmpurilor matematice pot fi folosite fără alte adăugiri. Dar semnul plus este folosit şi pentru discjuncţia inclusivă în unele sisteme de notaţie.
- Un semn plus care este modificat într-un fel, aşa cum este încercuit (⊕). Acest mod de folosire respectă faptul că acelaşi simbol plus se folsoeşte în matematică pentru suma directă a structurilor algebrice.
- Un simbol al disjuncţiei inclusive (∨) care este modificat într-un fel, aşa cum este subliniat (∨) sau cu un punct deasupra ().
- În unele limbaje de programare, precum C, C++ şi Java, se foloseşte simbolul ^ pentru operaţia XOR. Acesta nu este folosit în afara limbajelor de programare, deoarece poate fi uşor de confundat cu alte sensuri atribuite lui.
- Simbolul .
- În simbologia IEC, un sau exclusiv este marcat prin "=1".
[modifică] Expresii echivalente
Disjuncţia exclusivă poate fi exprimată în funcţie de conjuncţie (∧), disjuncţie (∨) sau negaţie (¬) după cum urmează:
Disjuncţia exclusivă poate fi de asemenea exprimată în felul următor:
Reprezentarea lui XOR poate fi utilă atunci când se construieşte un circuit sau o reţea, deoarece conţine o singură operaţie ¬ şi un număr mic de operaţii ∧ şi ∨. Demonstraţia acestei identităţi este scrisă mai jos:
Uneori este folositor să se scrie p XOR q sub forma următoare:
Se poate ajunge la această echivalenţă aplicând Legile lui De Morgan de două ori la a patra linie a demonstraţiei de mai sus.
[modifică] Asociativitate şi commutativitate
Din perspectiva izomorfismului dintre adunarea modulo 2 şi disjuncţia exclusivă, este evident că XOR este o operaţie asociativă şi comutativă. De aceea, parantezele pot fi omise pentru operaţii succesive, iar ordinea termenilor este indiferentă. De exemplu, avem următoarele ecuaţii:
[modifică] Proprietăţi
Această secţiune foloseşte următoarele simboluri:
Ecuaţiile următoare derivă din axiomele logice:
[modifică] Operaţii pe biţi
Disjuncţia exclusivă este des utilizată pentru operaţii pe biţi. Exemple:
- 1 xor 1 = 0
- 1 xor 0 = 1
- 1110 xor 1001 = 0111 (aceasta este echivalentă cu adunarea fără transport)
Aşa cum s-a notat mai sus, deoarece disjuncţia exclusivă este echivalentă cu adunarea modulo 2, disjuncţia exclusivă pe biţi a două şiruri de n biţi este identică cu adunarea vectorilor în spaţiul vectorial .