Yhteys | |
---|---|
JA | |
| |
Määritelmä | |
totuustaulukko | |
logiikka portti | |
normaaleja muotoja | |
Disjunktiivinen | |
sidekalvo | |
Zhegalkinin polynomi | |
Jäsenyys valmiilla luokilla | |
Säästää 0 | Joo |
Säästää 1 | Joo |
Yksitoikkoinen | Joo |
lineaarinen | Ei |
Itsenäinen kaksinkertainen | Ei |
Konjunktio ( latinasta conjunctio - "liitto, yhteys") on looginen operaatio , joka tarkoittaa mahdollisimman lähellä liittoa "ja". Synonyymit: looginen "AND" , looginen kertolasku , joskus vain "AND" [1] .
Konjunktio voi olla binäärioperaatio (eli sillä on kaksi operandia), kolmiosainen operaatio (eli kolme operandia) tai n-arvoinen operaatio (eli sillä on n operandia).
Yleisin konjunktiooperaation merkintä on:
(jos käytetään pistettä loogisen kertolaskumerkkinä, tämä merkki, kuten tavallisessa kertolaskussa algebrassa , voidaan jättää pois: [1] ).
Samanaikaisesti ISO 31-11 -standardin suosittelema merkintätapa on laajimmin käytetty modernissa matematiikassa ja matemaattisessa logiikassa , jossa se kuitenkin kilpailee et -merkin kanssa & [1] ; jälkimmäinen, ilmestyi 1. vuosisadalla eKr. e. latinan union et 'and': n graafisena lyhenteenä ( ligature ) käyttivät Jacob ja Johann Bernoulli jo vuonna 1685 loogisena linkkinä (niissä hän ei kuitenkaan yhdistänyt väitteitä , vaan käsitteitä ) [2] [3] . George Boole (jota seurasivat muut symbolisen menetelmän systemaattisen soveltamisen pioneerit logiikkaan: W. S. Jevons , E. Schroeder , P. S. Poretsky ) merkitsi konjunktiota merkin kanssa - tavallisena kertolaskuna [4] . Arend Heyting (1930) [5] ehdotti symbolia ⋀ (käänteinen disjunktiomerkki ) konjunktion symboliksi .
Konjunktion merkintää ⋀käytettiin myös varhaisessa ohjelmointikielessä Algol 60 [6] . Kuitenkin, koska useimmissa tietokoneissa käytetyistä vakiomerkistöistä (esimerkiksi ASCII : ssä tai EBCDIC :ssä) ei ollut vastaavaa merkkiä , yleisimmin käytetyt ohjelmointikielet tarjosivat konjunktiolle muita merkintöjä. Näin ollen Fortran IV :ssä ja PL/I :ssä käytettiin nimityksiä ja (mahdollisuudella korvata jälkimmäinen avainsanalla ) [7] ; Pascal ja Ada käyttävät varattua sanaa [8] [9] ; C- ja C++-kielet käyttävät merkintää bittikohtaiselle konjunktiolle ja loogiselle konjunktiolle [10] ). .AND.& ANDand&&&
Lopuksi kaksiarvoisen logiikan totuusarvojen luonnollisessa järjestyksessä (kun oletetaan, että ) käy ilmi , että konjunktio osoittautuu siis minimilaskennan toiminnan erikoistapaukseksi ; tämä avaa luonnollisimman tavan määritellä konjunktion toiminta moniarvoisen logiikan järjestelmissä (vaikka joskus harkitaan muita tapoja yleistää konjunktiota - esim . k -arvoisen logiikan tapauksessa , jossa totuusarvojen joukko edustaa luonnollisten lukujen puoliryhmän alkusegmenttiä ) [11] [12] .
Määritelmä.
Loogista funktiota MIN kaksiarvoisessa (binäärilogiikassa) kutsutaan konjunktioksi ( looginen "AND" , looginen kertolasku tai yksinkertaisesti "AND" ).
Sääntö: Tulos on yhtä suuri kuin pienin operandi.
Kuvaus. Boolen algebrassa
konjunktio on kahden, kolmen tai useamman muuttujan funktio (ne ovat myös operaation operandeja, ne ovat myös funktion argumentteja). Muuttujat voivat ottaa arvoja joukosta . Tulos kuuluu myös sarjaan . Tulos lasketaan yksinkertaisen säännön tai totuustaulukon mukaan . Arvojen sijasta voidaan käyttää mitä tahansa muuta sopivaa merkkiparia, esimerkiksi tai tai "false", "true", mutta tällaisella merkinnällä on tarpeen määrittää lisäksi vanhuus, esimerkiksi , digitaalisella merkinnällä, virkays on luonnollista .
Sääntö: tulos on , jos kaikki operandit ovat yhtä suuret ; kaikissa muissa tapauksissa tulos on .
Totuustaulukot:
binäärikonjunktiolle
kolmiosaiselle konjunktiolle
0 | 0 | 0 | 0 |
yksi | 0 | 0 | 0 |
0 | yksi | 0 | 0 |
yksi | yksi | 0 | 0 |
0 | 0 | yksi | 0 |
yksi | 0 | yksi | 0 |
0 | yksi | yksi | 0 |
yksi | yksi | yksi | yksi |
Konjunktio on kommutatiivinen , assosiatiivinen ja distributiivinen heikon disjunktion suhteen [13] .
Toiminto, jota kutsutaan binäärilogiikassa konjunktioksi , moniarvologiikassa liitetään yleensä minimioperaatioon : , jossa a on logiikan arvo; mutta myös muut vaihtoehdot tavanomaisen konjunktion yleistämiseksi asetettuarvoiseen tapaukseen ovat mahdollisia. Yleensä yritetään säilyttää yhteensopivuus Boolen algebran kanssa operandien ja arvojen osalta .
Tämän operaation minimin nimi on järkevä logiikassa millä tahansa arvolla, myös binäärilogiikassa, ja nimet konjunktio , looginen "AND" , looginen kertolasku ja yksinkertaisesti "AND" ovat tyypillisiä binäärilogiikassa, ja niitä käytetään harvemmin siirrettäessä moniarvoinen logiikka.
Klassisessa lauselaskennassa konjunktion ominaisuudet määritellään aksioomien avulla . Klassinen lauselasku voidaan antaa erilaisilla aksioomijärjestelmillä, ja osa niistä kuvaa konjunktion ominaisuuksia. Yksi yleisimmistä vaihtoehdoista sisältää 3 aksioomia konjunktiolle:
Näiden aksioomien avulla voidaan todistaa muita konjunktiooperaation sisältäviä kaavoja. Huomaa, että klassisessa lauselaskennassa tulosta ei lasketa operandien arvoista (kuten Boolen algebrassa), vaan kaava on todistettava kokonaisuutena aksioomien ja päättelysääntöjen perusteella.
Konjunktiofunktion toteuttavaa loogista elementtiä kutsutaan sovituspiiriksi [13] . Muistosääntö minkä tahansa tulomäärän yhteydessä on: Lähtö on:
Joukkoteorian kannalta konjunktio on analoginen leikkausoperaation kanssa .
Tietokonekielissä konjunktiosta käytetään kahta pääversiota: loogista "AND" ja bittikohtaista "AND". Esimerkiksi C/C++-kielissä looginen JA on merkitty symbolilla "&&" ja bittikohtainen symbolilla "&". C# :ssa käytetyssä terminologiassa "&"-toimintoa kutsutaan loogiseksi "AND" ja operaatiota "&&" kutsutaan ehdolliseksi "AND" , koska operandien arvot ovat ehtoja laskennan jatkamiselle. Pascal/Delphi-kielissä molemmat konjunktiot merkitään avainsanoilla " ja " , ja toiminnan tulos määräytyy operandien tyypin mukaan. Jos operandit ovat boolen tyyppiä (esimerkiksi Boolean), suoritetaan looginen toiminto, jos kokonaisluku (esimerkiksi tavu) on bittikohtainen operaatio.
Loogista "AND" käytetään ehdollisissa hyppylauseissa tai vastaavissa tapauksissa, kun tulos tai vaaditaan . Esimerkiksi:
if ( a & b & c ) { /* joitakin toimia */ };Vertailu jatkuu tässä tapauksessa lausekkeen loppuun välituloksista riippumatta. Ehdollisen "AND" periaate samanlaisessa tilanteessa:
a = epätosi _ b = tosi ; c = tosi ; if ( a && b && c ) { /* joitakin toimintoja */ };Lausekkeen totuuden tarkistaminen tässä tapauksessa pysähtyy muuttujan a tarkistamisen jälkeen, koska lisävertailu ei ole järkevää.
Tulos on yhtä suuri , jos molemmat operandit ovat yhtä suuret (ei yhtä suuri numeerisille tyypeille ). Joka muussa tapauksessa tulos on .
Tässä tapauksessa sovelletaan vakiosopimusta: jos vasemman operandin arvo on yhtä suuri kuin , oikean operaandin arvoa ei lasketa (sen sijaan voi olla monimutkainen kaava). Tämä käytäntö nopeuttaa ohjelman suorittamista ja on hyödyllinen tekniikka joissakin tapauksissa. Delphi-kääntäjä tukee erityistä direktiiviä, joka sisältää
{$B-}tai sammuttamalla
{$B+}samanlaista käytöstä. Jos esimerkiksi vasen operandi testaa, voidaanko oikea operandi arvioida:
if ( a != 0 && b / a > 3 ) { /* joitakin toimia */ };Tässä esimerkissä vasemman operandin tarkistuksen vuoksi oikea operandi ei koskaan jaa nollalla.
Bittikohtainen "AND" suorittaa tavanomaisen Boolen algebra-operaation kaikille vasemman ja oikean operandin biteille pareittain. Esimerkiksi,
jos | |
a = | |
b= | |
sitten | |
a ja b = |
Usein korostetaan luonnollisen kielen konjunktion ja konjunktion "ja" samankaltaisuutta. Yhdistelmälause " A ja B " katsotaan tosi, kun molemmat lauseet A ja B ovat tosi , muuten yhdistelmälause on epätosi. Tämä vastaa täsmälleen Boolen algebran konjunktion määritelmää, jos "tosi" on merkitty symbolilla , ja "false" on merkitty . Samaan aikaan tehdään usein tavallinen luonnollisen kielen moniselitteisyyslauseke . Esimerkiksi liitolla "ja" voi kontekstista riippuen olla lisämerkitys "ja sitten", "ja siksi", "ja sitten". Amerikkalainen matemaatikko Stephen Kleene ilmaisi nokkelasti eron luonnollisen kielen logiikan ja matemaattisen logiikan välillä huomauttaen, että luonnollisella kielellä "Mary meni naimisiin ja sai lapsen" ei ole sama asia kuin "Mary synnytti vauvan ja meni naimisiin".
Bibliografisissa luetteloissa |
---|
Boolen operaatiot | |
---|---|
|
Logiikka | |||||||||
---|---|---|---|---|---|---|---|---|---|
Filosofia • Semantiikka • Syntaksi • Historia | |||||||||
Logiikkaryhmät |
| ||||||||
Komponentit |
| ||||||||
Luettelo loogisista symboleista |