Välistav disjunktsioon

Välistav disjunktsioon ehk välistav VÕI (kasutatakse ka termineid mitteekvivalents , antiekvivalents, range disjunktsioon ) on lausearvutuses binaarne tehe, mis on tõene parajasti siis, kui tema operandidel on erinevad väärtused (kui üks on tõene ja teine väär) Seda tähistatakse järgmiste infiksoperaatoritega: XOR, EOR, EXOR, ⊻, ⩒, ⩛, ⊕, ↮, ja ≢. Poola kujul on vastav operaator J. Argumentide p ja q välistavat disjunktsiooni saab seega muuhulgas tähistada kõikidel järgnevatel viisidel: p ⊕ q {\displaystyle p\oplus q} , p {\displaystyle p} ⩛ q {\displaystyle q} , J ⁡ p q {\displaystyle \operatorname {J} pq} . Tehte XOR eitus on loogiline ekvivalents, mille väljund on tõene parajasti siis, kui mõlemad sisendid on tõesed. Nimi "välistav või" tuleb sellest, et tavaline disjunktsioon on tõene ka siis, kui mõlemad sisendid on tõesed; välistava või operaator n-ö välistab selle juhtumi ning tagastab sel juhul väära väärtuse. Loomulikus keeles on välistava disjunktsiooni indikaatoriteks väljendid "kas...või"; "emb-kumb". Näiteks lause "Kas järgid seadust või saad karistada" väljendab välistava või tehet. Üldisemalt on XOR tõene ainult siis, kui paaritu arv sisendeid on tõesed. Ahel XOR tehetest – a XOR b XOR c XOR d (ja nii edasi) – on tõene siis, kui paaritu arv sisenditest on tõesed, ning väär siis, kui paarisarv sisenditest on tõesed. Välistava disjunktsiooni tähistus erineb olenevalt teksti valdkonnast või isegi sellest, milliseid omadusi soovitakse antud kontekstis rõhutada. Lisaks lühendile "XOR" kasutatakse ka kõiki järgnevaid sümboleid. +, plussmärk, mille eelis on see, et kõiki tavalisi ringide ja korpuste algebralisi omadusi saab kasutada ilma lisatäpsustusteta; plussmärki kasutatakse ka vahel tavalise disjunktsiooni tähisena. ⊕ {\displaystyle \oplus } , plussmärk, millel on ring ümber; seda sümbolit kasutatakse matemaatikas ka otsesumma jaoks. J, nagu Jpq Kasutatakse ka tavalise disjunktsiooni sümbolit ( ∨ {\displaystyle \lor } ), mida on mingil moel muudetud, nagu järgnevalt ∨ _ {\displaystyle {\underline {\lor }}} ∨ ˙ {\displaystyle {\dot {\vee }}} ^, sisestusmärk (caret), kasutatakse mitmetes programmeerimiskeeltes, nagu C, C++, C#, D, Java, Perl, Ruby, PHP ja Python, tähistab bitikaupa tehtavat XOR operaatorit; seda ei kasutata programmeerimise kontekstidest väljaspool, sest seda saab liiga kergesti segamini ajada sama sümboli teiste kasutustega , vahel kujutatud ka järgnevalt >< >-< =1, IEC sümboloogias Tehte A XOR B tõeväärtustabel näitab, et tehte väärtus on tõene parajasti siis, kui sisendite väärtused on erinevad. Välistavat disjunktsiooni p ⊕ q {\displaystyle p\oplus q} võib väljendada ka konjunktsiooni, disjunktsiooni ja eituse kaudu esitada järgnevalt: p ⊕ q ≡ ( p ∨ q ) ∧ ¬ ( p ∧ q ) {\displaystyle {\begin{matrix}p\oplus q&\equiv &(p\lor q)\land \lnot (p\land q)\end{matrix}}} Selle ekvivalentsi tõestus on antud järgmiselt: p ⊕ q ≡ ( p ∧ ¬ q ) ∨ ( ¬ p ∧ q ) ≡ ( ( p ∧ ¬ q ) ∨ ¬ p ) ∧ ( ( p ∧ ¬ q ) ∨ q ) ≡ ( ( p ∨ ¬ p ) ∧ ( ¬ q ∨ ¬ p ) ) ∧ ( ( p ∨ q ) ∧ ( ¬ q ∨ q ) ) ≡ ( ¬ p ∨ ¬ q ) ∧ ( p ∨ q ) ≡ ¬ ( p ∧ q ) ∧ ( p ∨ q ) {\displaystyle {\begin{matrix}p\oplus q&\equiv &(p\land \lnot q)&\lor &(\lnot p\land q)\\[3pt]&\equiv &((p\land \lnot q)\lor \lnot p)&\land &((p\land \lnot q)\lor q)\\[3pt]&\equiv &((p\lor \lnot p)\land (\lnot q\lor \lnot p))&\land &((p\lor q)\land (\lnot q\lor q))\\[3pt]&\equiv &(\lnot p\lor \lnot q)&\land &(p\lor q)\\[3pt]&\equiv &\lnot (p\land q)&\land &(p\lor q)\end{matrix}}} Vahel on ka kasulik kirjutada p ⊕ q {\displaystyle p\oplus q} tehet järgmistel viisidel: p ⊕ q = ¬ ( ( p ∧ q ) ∨ ( ¬ p ∧ ¬ q ) ) {\displaystyle {\begin{matrix}p\oplus q&=&\lnot ((p\land q)\lor (\lnot p\land \lnot q))\end{matrix}}} p ⊕ q ≡ ( p ∧ ¬ q ) ∨ ( ¬ p ∧ q ) {\displaystyle {\begin{matrix}p\oplus q&\equiv &(p\land \lnot q)\lor (\lnot p\land q)\end{matrix}}} p ⊕ q ≡ ( p ∨ q ) ∧ ( ¬ p ∨ ¬ q ) {\displaystyle {\begin{matrix}p\oplus q&\equiv &(p\lor q)\land (\lnot p\lor \lnot q)\end{matrix}}} Viimast ekvivalentsi saab tõestada, kasutades eelnevalt mainitud tõestuse neljandal real kaks korda De Morgani seadusi. Välistav disjunktsioon on samuti samaväärne loogilise ekvivalentsiga, implikatsiooni ja ekvivalentsi teisendusreeglite tõttu. Kokkuvõttes on meil järgnevad samaväärsused matemaatilises notatsioonis ja tehnilises notatsioonis (engineering notation): p ⊕ q ≡ ( p ∧ ¬ q ) ∨ ( ¬ p ∧ q ) = p q ¯ + p ¯ q ≡ ( p ∨ q ) ∧ ( ¬ p ∨ ¬ q ) = ( p + q ) ( p ¯ + q ¯ ) ≡ ( p ∨ q ) ∧ ¬ ( p ∧ q ) ≡ ( p + q ) ( p q ¯ ) {\displaystyle {\begin{matrix}p\oplus q&\equiv &(p\land \lnot q)&\lor &(\lnot p\land q)&=&p{\overline {q}}+{\overline {p}}q\\[3pt]&\equiv &(p\lor q)&\land &(\lnot p\lor \lnot q)&=&(p+q)({\overline {p}}+{\overline {q}})\\[3pt]&\equiv &(p\lor q)&\land &\lnot (p\land q)&\equiv &(p+q)({\overline {pq}})\end{matrix}}} kommutatiivsus: jah assotsiatiivsus: jah distributiivsus: Välistaval võil ei kehti distributiivsus ühegi binaarse funktsiooniga (isegi mitte iseendaga), aga loogilisel konjunktsioonil kehtib distributiivsus välistava võiga. C ∧ ( A ⊕ B ) = C ∧ ⊕ C ∧ B {\displaystyle C\land (A\oplus B)=C\land \oplus C\land B} idempotentsus: ei monotoonsus: ei tõesust säilitav: ei Kui kõik sisendid on tõesed, ei ole väljund tõene väärsust säilitav: jah Kui kõik sisendid on väärad, on ka väljund väär. Walshi spektrum: (2,0,0,-2) Mittelineaarsus: 0 (funktsioon on lineaarne) Kasutades binaarseid väärtuseid tõese (1) ja väära (0) jaoks, siis käitub välistav disjunktsioon täpselt nagu liitmine mooduli 2 järgi. "Eesti keele seletav sõnaraamat" selgitab lausestruktuuri "kas ... või" järgnevalt : „eraldav ühendsidesõna, seob alternatiivseid lauseliikmeid v. lauseid, millest ainult üks on võimalik.“ Välistavat võid kasutatakse tihti bitikaupa tehtavaid loogikatehetes. Näited: 1 XOR 1 = 0 1 XOR 0 = 1 0 XOR 1 = 1 0 XOR 0 = 0 Nagu eespool mainitud, on välistav disjunktsioon ekvivalentne liitmine modulo 2-ga. Kahe n-bitise stringi välistav disjunktsioon on ekvivalentne standardse liitmisvektoriga vektorruumis ( Z / 2 Z ) n {\displaystyle (\mathbb {Z} /2\mathbb {Z} )^{n}} . Informaatikas on välistaval disjunktsioonil mitmeid kasutusi: See ütleb, millal on kaks bitti üksteisest erinevad Seda saab kasutada kontrollitava bittide muutjana (otsustav sisend määrab ära, kas teise sisendi väärtust muuta või mitte). Selle abil saab kindlaks teha, kas bitte väärtusega 1 on paaritu arv. ( A ⊕ B ⊕ C ⊕ D ⊕ E {\displaystyle A\oplus B\oplus C\oplus D\oplus E} on tõene parajasti siis, kui paaritu arv muutujaid on tõesed). Mõnes arvutiarhitektuuris on efektiivsem hoiustada registris väärtust null nii, et XOR-itakse register iseendaga (bitid, mis XOR-itakse iseendaga tagastavad alati nulli) selle asemel, et nulli väärtust liigutada ja hoiustada. Arvutigraafikas kasutatakse välisata disjunktsiooni tehet esemete liigutamise kujutamiseks. Peale ASCII koodide on välistav või kodeeritud kui U+22BB ⊻ XOR (HTML &#8891;) ja U+2295 ⊕ CIRCLED PLUS (HTML &#8853; · &oplus;). Tamme, T., Tammet, T., Prank R. Loogika: mõtlemisest tõestamiseni.{{raamatuviide}}: CS1 hooldus: mitu nime: autorite loend (link) Enn Kasak (2014). Loogika alused. Germundsson, Roger; Weisstein, Eric. "XOR". MathWorld. Wolfram Research. Vaadatud 17. juuni 2015. Craig, Edward, toim (1998), Routledge Encyclopedia of Philosophy, kd 10, Taylor & Francis, lk 496, ISBN 9780415073103 "Eesti keele seletav sõnaraamat". Vaadatud 3. mail 2018. Näide XOR kasutamisest krüptograafias