Diszjunkció

A Wikipédiából, a szabad enciklopédiából
Vagy-kapu

A matematikai logikában diszjunkció vagy más néven logikai "vagy" alatt egy olyan kétváltozós logikai műveletet értünk, amelynek a logikai értéke akkor és csak akkor hamis, ha mind a két operandusának hamis a logikai értéke. Másként megközelítve: a diszjunkció akkor igaz, ha bármely operandusának igazságértéke igaz. A logikai értelemben vett vagy műveletnek a fentiek értelmében eltérő jelentése van a hétköznapi "vagy" szavunkhoz képest. Természetes nyelven ugyanis a "vagy" szó alatt a "kizáró vagy" műveletét szoktuk érteni, azaz amikor az operandusok közül egyszerre csak az egyik igaz, a kettő együtt nem. Ez a logikai vagy művelettel nem ekvivalens. Például, amikor azt mondjuk, hogy "Küldd el sms-ben, vagy e-mailben!", az alatt azt értjük, hogy vagy az egyik, vagy a másik úton kérjük az adatot, nem azt, hogy mind a két módon szeretnénk megkapni. A hétköznapi beszédben ilyenkor inkább "és"-t mondunk.

Definíció[szerkesztés | forrásszöveg szerkesztése]

A p vagy q ítéletek diszjunkcióját a következő igazságtáblázat definiálja:

p q
igaz igaz igaz
igaz hamis igaz
hamis igaz igaz
hamis hamis hamis

ahol \vee a diszjunkció jele.

Tulajdonságai[szerkesztés | forrásszöveg szerkesztése]

Tetszőleges A, B, C ítéletek esetén teljesülnek a következő állítások:

A\vee A\equiv A
A\vee B\equiv B\vee A
A\vee (B\vee C)\equiv (A\vee B)\vee C
A \wedge(B \vee C)\equiv (A \wedge B) \vee (A \wedge C)
  • A diszjunkció disztributív a konjunkcióra, azaz
A \vee(B \wedge C)\equiv (A \vee B) \wedge (A \vee C)
  • A konjunkcióra és a diszjunkcióra teljesülnek az elnyelési tulajdonságok (abszorptivitás), azaz
A \vee(A \wedge B)\equiv A
A \wedge(A \vee B)\equiv A
  • A konjunkcióra és a diszjunkcióra teljesülnek a De Morgan azonosságok, azaz
\neg(A \wedge B)\equiv (\neg A) \vee (\neg B), és
\neg(A \vee B)\equiv (\neg A) \wedge (\neg B)
  • Végül fennáll a dualitás elve, azaz ha felcseréljük a konjunkciót és a diszjunkciót, valamint az igaz és a hamis logikai konstansokat, akkor az állítás igazságértéke megmarad.

Halmazelméleti megközelítés[szerkesztés | forrásszöveg szerkesztése]

A diszjunkció művelete a halmazelméletben megfelel az unió műveletének. "A vagy B" Venn-diagramja (a piros rész az igaz rész diszjunkció esetén)

A vagy B

Alkalmazása a számítástudományban[szerkesztés | forrásszöveg szerkesztése]

A legtöbb programozási nyelvben létezik diszjunkció önálló műveletként. Két fajtáját meg is különböztethetjük, tipikusan már a forráskódban is másként jelölve.

Logikai diszjunkció[szerkesztés | forrásszöveg szerkesztése]

Megfelel a fentebb tárgyaltaknak, azaz két operandus (feltétel) közül az egyik teljesülése esetén a futás az elágazás igaz ágán folytatódik. Általában ha az egyik feltétel igaznak bizonyult, a többi már nem is értékelődik ki, a futásidővel való spórolás okán. Jelölése C nyelven pl. "||", Pythonban az "or" kulcsszóval történik.

if ((a < 0) || (a > 10)) { return true; } // Ha az a kisebb lesz 0-nál, vagy nagyobb 10-nél, igazat adunk vissza

Bitszintű diszjunkció[szerkesztés | forrásszöveg szerkesztése]

Ekkor a vagy műveletét tipikusan egy számon végezzük el, bitenként. Amennyiben egy adott helyiértéken legalább az egyik operandus 1, akkor az eredmény is 1 lesz. Például ha a = 1100 (=12), b = 1010 (=10):

  • a = 1100
  • b = 1010
  • | = 1110

Tehát az eredményünk 14 lesz. Ezen műveletet pl. C nyelven egy "|" jellel tüntetjük fel.

Források[szerkesztés | forrásszöveg szerkesztése]

Kapcsolódó szócikkek[szerkesztés | forrásszöveg szerkesztése]