Ero sivun ”Disjunktio” versioiden välillä
[katsottu versio] | [katsottu versio] |
Poistettu sisältö Lisätty sisältö
KLS (keskustelu | muokkaukset) viilausta |
p typoja ja kummia kappalejakoja |
||
Rivi 4:
'''Disjunktio''' on [[propositiologiikka|propositiologiikassa]] kaksipaikkainen [[looginen konnektiivi]], joka vastaa yleiskielen sanaa ''tai''. Sillä muodostettu yhdistetty lause on tosi, jos ainakin yksi sen yhdistämistä lauseista on tosi, muussa tapauksessa epätosi.<ref name=Standord>{{verkkoviite | Osoite = http://plato.stanford.edu/entries/disjunction/ | Nimeke = Disjunction | Julkaisija = Stanford Enclycopedia of Philosophy | Viitattu = 9.4.2015}}</ref> Lauseiden ''A'' ja ''B'' disjunktiolle käytetään merkintää <math>A \or B</math>.
Näin määritellystä disjunktiosta käytetään myös nimitystä ''inklusiivinen tai'' eli ''inklusiivinen disjunktio'' erotukseksi [[
Disjunktioon läheisesti liittyviä käsitteitä muissa yhteyksissä ovat:
Rivi 14:
== Merkinnät ==
Loogiselle disjunktiolle käytetään kirjallisuudessa useita eri symboleja. Sanan "tai" ({{k-en|or}}) ohella sille käytetään yleisesti symbolia "<math>\or</math>",<ref name=Hazewinkel>{{kirjaviite | Nimeke = Encyclopedia of Mathematics | Kirjoittaja = Michiel Hazewinkel | Luku = Disjunction | Julkaisija = Springer, The European Mathematical Society | Vuosi = 2001 | Tunniste = ISBN 978-1-55608-010-4 | www = http://plato.stanford.edu/entries/disjunction/}}</ref> joka on muodostettu [[latina]]n sanan ''vel'' ("tai") alkukirjaimesta.<ref name=Standord /> Esimerkiksi "''A'' <math>\or</math> ''B'' " luetaan "''A'' tai ''B''".
▲ohella sille käytetään yleisesti symbolia "<math>\or</math>",<ref name=Hazewinkel>{{kirjaviite | Nimeke = Encyclopedia of Mathematics | Kirjoittaja = Michiel Hazewinkel | Luku = Disjunction | Julkaisija = Springer, The European Mathematical Society | Vuosi = 2001 | Tunniste = ISBN 978-1-55608-010-4 | www = http://plato.stanford.edu/entries/disjunction/}}</ref> joka on muodostettu [[latina]]n sanan ''vel'' ("tai") alkukirjaimesta.<ref name=Standord /> Esimerkiksi "''A'' <math>\or</math> ''B'' " luetaan "''A'' tai ''B''". Tällainen disjunktio on epätosi vain jos sekä ''A'' että ''B'' ovat epätosia lauseita, muussa tapauksessa se on tosi.
Kaikki seuraavat ovat disjunktiota:
Rivi 22 ⟶ 21:
: <math>A \or \neg B \or \neg C \or D \or \neg E.</math>
[[Boolen algebra]]ssa disjunktiolle käytetään merkintää <math>A + B</math>.
Eri [[ohjelmointikieli]]ssä disjunktiota vastaava operaattori merkitään tavallisimmin joko sanalla <code>or</code> tai kahdella pystyviivalla (<code>||</code>).
== Totuustaulu ==
Rivi 50 ⟶ 48:
==Ominaisuudet==
Looginen disjunktio noudattaa laskulakeja, jotka pitkälti ovat analogisia esimerkiksi [[reaaliluku]]jen laskusäännöille. Se on [[vaihdannaisuus|vaihdannainen]] ja [[liitännäisyys|liitännäinen]], ja sille pätee myös [[osittelulaki]], kun toisena laskutoimituksena on looginen [[konjunktio (logiikka)|konjunktio]]. Disjunktio on lisäksi [[idempotenssi|idempotentti]] eli minkä tahansa lauseen disjunktiolla itsensä kanssa on sama totuusarvo kuin alkuperäisellä lauseella. Tätä havainnollistavat seuraavat kaaviot:
* '''Vaihdannaisuus'''
Rivi 116 ⟶ 114:
! bgcolor="#ccccff"|muita
|-
|
liitännäisyys loogisen [[ekvivalenssi]]n suhteen:
{| style="text-align: center; border: 1px solid darkgray;"
Rivi 271 ⟶ 269:
[[Kuva:Or-gate-en.svg|thumb|right|150px|[[OR-portti]]]]
Useimmissa [[ohjelmointikieli]]ssä on disjunktiota vastaava operaattori.
Looginen disjunktio suoritetaan yleensä minimaalisella evaluaatiolla. Tämä merkitsee, että jos sen ensimmäinen (vasemmanpuoleinen) operandi on arvoltaan ''tosi'', ohjelma ei edes tarkista, mikä sen jälkimmäisen operandin arvo on.
Useimmissa ohjelmointikielissä looginen disjunktio antaa tulokseksi aina [[boolean]]-tyyppisen muuttujan, jolla on vain kaksi mahdollista arvoa: tosi (1) tai epätosi (0). Monissa [[Vahva tyypitys|vahvasti tyypitetyissä]] kielissä disjunktio voidaan sitä paitsi suorittaa vain, jos molemmat sillä
Muutamissa ohjelmointikielissä kuten [[Python]]issa ja [[JavaScript]]issä disjunktio-operaattori voi kuitenkin palauttaa muitakin arvoja kuin 1 tai 0. Tällöin se saa arvokseen operaattorin ensimmäisen operandin arvon, jos se on "tosi" eli ei ole nolla, muussa tapauksessa jälkimmäisen operandin arvon.
Disjunktiota vastaava [[looginen portti]] on [[OR-portti]].
Rivi 287 ⟶ 281:
=== Biteittäinen operaatio ===
Joissakin ohjelmointikielissä on määritelty myös ''biteittäinen disjunktio'''. Tällöin operandit, jotka voivat olla esimerkiksi [[binääriluku|binäärisiä]] [[kokonaisluku]]ja, käydään läpi bitti bitiltä ja suoritetaan disjunktio-operaatiot kummankin operandin vastaavien bittien välillä. Tuloksena saadaan muuttuja, jossa kunkin bitin arvo riippuu operandien bittien arvoista seuraavasti:
* 0 <code>or</code> 0 = 0
Rivi 301 ⟶ 292:
Biteittäinen disjunktio on käytettävissä muun muassa [[C (ohjelmointikieli)|C-kielessä]], jossa se merkitään yhdellä pystyviivalla (<code>|</code>).
Biteittäisellä disjunktiolla voidaan muun muassa asettaa halutulle bitille arvo 1 muiden bittien pysyessä ennallaan. Esimerkiksi lauseella <code>x = x | 0b00000001</code> saadaan muuttujan x viimeinen bitti ykköseksi.
==Unioni==
Disjunktiota vastaava operaatio [[joukko-oppi|joukko-opissa]] on [[unioni]]. Kahden joukon unioni määritelläänkin disjunktion avulla: <math> a \in A \cup B</math>, jos ja vain jos <math> a \in A \or a \in B</math>. Toisin sanoen alkio ''a'' kuuluu joukkojen ''A'' ja ''B'' unioniin, jos ja vain jos se kuuluu näistä joukoista ainakin toiseen. Tämän vuoksi joukko-opillinen unioni noudattaa pitkälti samoja sääntöjä kuin disjunktiokin: sillekin pätevät vaihdanta-, liitäntä-, osittelu- ja [[de Morganin lait]].▼
▲määritelläänkin disjunktion avulla: <math> a \in A \cup B</math>, jos ja vain jos <math> a \in A \or a \in B</math>. Toisin sanoen alkio ''a'' kuuluu joukkojen ''A'' ja ''B'' unioniin, jos ja vain jos se kuuluu näistä joukoista ainakin toiseen. Tämän vuoksi joukko-opillinen unioni noudattaa pitkälti samoja sääntöjä kuin disjunktiokin: sillekin pätevät vaihdanta-, liitäntä-, osittelu- ja [[de Morganin lait]].
== Luonnolliset kielet ==
[[Matemaattinen logiikka|Matemaattisessa logiikassa]] määritellyt käsitteet ovat merkitykseltään täsmällisempiä kuin luonnollisen kielen sanat yleensä ovat. Suomen kielessä disjunktiota vastaa lähinnä sana ''tai'', jota käytetään kuitenkin ainakin kahdessa toisistaan poikkeavassa merkityksessä, kuten sen vastineita useissa muissakin kielissä. Jos joku esimerkiksi pyytää: "Soita minulle tai lähetä sähköpostia", tällöin tarkoitetaan todennäköisesti: "tee toinen, mutta älä molempia." Jos taas jostakusta sanotaan: "Kun hän sai niin korkea arvosanat, hän selvästikin on hyvin lahjakas tai opiskelee ahkerasti"; tällöin ei suljeta pois sitä mahdollista, että molemmat vaihtoehdot ovat tosia. Toisin sanoen sana "tai" voi tarkoittaa sekä inklusiivista että eksklusiivista disjunktiota.<ref name=Ensyklopedia /> Silloin kun kyseessä on inklusiivinen disjunktio, käytetään nykyisin toisinaan asian selventämiseksi ilmaisua "[[ja/tai]]".
{{käännös|:en:Logical disjunction}}
== Lähteet ==
{{viitteet}}
|