Disjuncție | |
---|---|
SAU | |
| |
Definiție | |
tabelul de adevăr | |
poarta logica | |
forme normale | |
Disjunctiv | |
conjunctivala | |
polinomul Zhegalkin | |
Calitatea de membru la cursuri precompletate | |
Salvează 0 | da |
Salvează 1 | da |
Monoton | da |
liniar | Nu |
Auto-dual | Nu |
Disjuncție (din lat. disjunctio - „disjuncție”), adiție logică , SAU logic , inclusiv SAU ; uneori doar SAU este o operație logică , în aplicarea ei cât mai apropiată de uniunea „sau” în sensul „ori aceasta, ori aceea, sau ambele deodată” [1] .
O disjuncție poate fi fie binară (având doi operanzi) fie -ary (având operanzi) pentru un .
Intrarea poate fi prefix - semnul operației vine înaintea operanzilor ( notație poloneză ), infix - semnul operației vine între operanzi sau postfix - semnul operației vine după operanzi. Când numărul de operanzi este mai mare de doi, notațiile de prefix și postfix sunt mai economice.
Cea mai comună notație pentru operația de disjuncție este:
|| |În același timp , notația recomandată de standardul internațional ISO 31-11 este cea mai utilizată în matematica și logica matematică modernă [2] . Nu a apărut imediat: George Boole , care a pus bazele aplicării sistematice a metodei simbolice la logică, nu a lucrat cu disjuncție (folosind în schimb disjuncția strictă , pe care a notat-o cu semnul + ), iar William Jevons a propus semnul. pentru disjuncție . Ernst Schroeder și P. S. Poretsky au folosit din nou semnul + , dar în raport cu disjuncția obișnuită [3] . Simbolul ca desemnare a disjuncției apare mai întâi în articolul „Logica matematică bazată pe teoria tipurilor” [4] de Bertrand Russell (1908); este derivat din lat. vel , care înseamnă „sau” [5] [6] . ·|·
Notația ⋁pentru disjuncție a fost folosită și în limbajul timpuriu de programare Algol 60 [7] . Cu toate acestea, din cauza absenței unui caracter corespunzător în seturile de caractere standard (de exemplu, în ASCII sau EBCDIC ) utilizate pe majoritatea computerelor , cele mai utilizate limbaje de programare au furnizat alte notații pentru disjuncție. Astfel, în Fortran IV și respectiv PL/I s-au folosit denumirile .OR.și |(cu posibilitatea înlocuirii acestuia din urmă cu cuvântul cheie OR ) [8] ; cuvântul rezervat [9] [10] este folosit în Pascal și Ada ; limbajele C și C++ folosesc notația pentru disjuncția pe biți și pentru disjuncția logică [11] ). or|||
În cele din urmă, sub ordonarea naturală a valorilor de adevăr ale logicii cu două valori (când se presupune că ), rezultă că. Astfel, disjuncția se dovedește a fi un caz special al operației de calcul a maximului ; aceasta deschide calea cea mai naturală de a defini operația de disjuncție în sisteme de logică multivalorică [12] [13] .
Funcția logică MAX în logica cu două valori (binară) se numește disjuncție ( „SAU” logic , adunare logică sau pur și simplu „SAU” ). Rezultatul este egal cu cel mai mare operand.
În algebra booleană , o disjuncție este o funcție a două, trei sau mai multe variabile (sunt și operanzii unei operații, sunt și argumentele unei funcții). Astfel, rezultatul este , dacă toți operanzii sunt egali ; în toate celelalte cazuri rezultatul este .
tabelul de adevăr | ||
---|---|---|
Tabelul de adevăr pentru disjuncția ternară (trei operanzi):
0 | 0 | 0 | 0 |
0 | 0 | unu | unu |
0 | unu | 0 | unu |
0 | unu | unu | unu |
unu | 0 | 0 | unu |
unu | 0 | unu | unu |
unu | unu | 0 | unu |
unu | unu | unu | unu |
Operația, numită disjuncție în logica binară , se numește maximă în logica cu mai multe valori : , unde , a este valoarea logicii. Alte variante sunt posibile[ ce? ] . De regulă, ei încearcă să mențină compatibilitatea cu algebra booleană pentru valorile operanzilor .
Numele maximului acestei operații are sens în logica cu orice valoare, inclusiv în logica binară, iar denumirile disjuncție , „SAU” logic , adunare logică și pur și simplu „SAU” sunt caracteristice logicii binare și sunt utilizate mai rar atunci când treceți la logici cu mai multe valori.
În calculul propozițional clasic, proprietățile unei disjuncții sunt definite folosind axiome . Calculul propozițional clasic poate fi dat de diferite sisteme de axiome, iar unele dintre ele vor descrie proprietățile disjuncției. Una dintre cele mai comune opțiuni include 3 axiome pentru disjuncție:
Aceste axiome pot fi folosite pentru a demonstra alte formule care conțin operația de disjuncție. Vă rugăm să rețineți că în calculul propozițional clasic, rezultatul nu este calculat din valorile operanzilor (ca în algebra booleană), dar este necesar să se demonstreze formula în ansamblu pe baza axiomelor și a regulilor de inferență.
Regula mnemonică pentru disjuncția cu orice număr de intrări este: Ieșirea va fi:
În ceea ce privește teoria mulțimilor , disjuncția este analogă cu operația de unire .
În limbajele de calculator, există două variante principale de disjuncție: „SAU” logic și „SAU” pe biți. De exemplu, în C/C++/Perl/PHP, „SAU” logic este notat cu simbolul „||”, iar „SAU” pe biți prin simbolul „|”. În limbajele Pascal/Delphi, ambele tipuri de disjuncție sunt notate folosind cuvântul cheie " sau " , iar rezultatul operației este determinat de tipul operanzilor. Dacă operanzii sunt de tip boolean (de exemplu, boolean), se efectuează o operație logică, dacă un număr întreg (de exemplu, octet) este o operație pe biți.
„SAU” logic este folosit în operatorii de sărituri condiționate sau în cazuri similare când un rezultat sau este necesar . De exemplu:
dacă ( a || b ) { /* unele acțiuni */ };Rezultatul va fi egal dacă ambii operanzi sunt egali sau . În orice alt caz, rezultatul va fi .
În acest caz, se aplică convenția standard: dacă valoarea operandului din stânga este egală cu , atunci valoarea operandului din dreapta nu este calculată (în schimb, poate exista o formulă complexă). Această convenție accelerează execuția programului și este o tehnică utilă în unele cazuri. Compilatorul Delphi acceptă o directivă specială care include
{$B-}sau oprire
{$B+}comportament similar. De exemplu, dacă operandul din stânga verifică pentru a vedea dacă operandul din dreapta trebuie evaluat:
dacă ( a == NULL || a -> x == 0 ) { /* unele acțiuni */ };În acest exemplu, din cauza verificării operandului din stânga, nu va apărea niciodată o dereferință de pointer nulă pe operandul din dreapta.
SAU pe biți efectuează operația obișnuită de algebră booleană pe toți biții operandului din stânga și din dreapta în perechi. De exemplu,
dacă | |
a = | |
b= | |
apoi | |
a SAU b = |
Asemănarea dintre disjuncție și conjuncția „sau” în limbajul natural este adesea subliniată atunci când este folosită în sensul „ori aceasta, ori aceea, sau ambele deodată”. În actele juridice, ei scriu adesea: „și (sau)”, uneori „și/sau”, adică „ori asta, ori asta, sau ambele deodată”. Enunțul compus „A și/sau B” este considerat fals atunci când ambele afirmații A și B sunt false, în caz contrar afirmația compusă este adevărată. Aceasta corespunde exact cu definiția disjuncției din algebra booleană, dacă „adevărat” este notat cu , iar „fals” cu .
Ambiguitatea limbajului natural constă în faptul că uniunea „sau” este folosită în două sensuri: fie pentru a desemna disjuncție, apoi pentru o altă operație - disjuncție strictă ( exclusiv „SAU” ).
Dicționare și enciclopedii | |
---|---|
În cataloagele bibliografice |
Operații booleene | |
---|---|
|
Logici | |||||||||
---|---|---|---|---|---|---|---|---|---|
Filosofie • Semantică • Sintaxă • Istorie | |||||||||
Grupuri logice |
| ||||||||
Componente |
| ||||||||
Lista simbolurilor booleene |