Disjunktion | |
---|---|
ELLER | |
| |
Definition | |
sandhedstabel | |
logisk port | |
normale former | |
Disjunktiv | |
konjunktival | |
Zhegalkin polynomium | |
Medlemskab af prækompletterede klasser | |
Sparer 0 | Ja |
Sparer 1 | Ja |
Monotone | Ja |
lineær | Ikke |
Selv-dual | Ikke |
Disjunktion (fra lat. disjunctio - "disjunktion"), logisk tilføjelse , logisk ELLER , herunder ELLER ; nogle gange er bare OR en logisk operation , i dens anvendelse så tæt som muligt på foreningen "eller" i betydningen "enten dette eller det, eller begge dele på én gang" [1] .
En disjunktion kan enten være binær (med to operander) eller -ær (der har operander) for en vilkårlig .
Indtastningen kan være præfiks - operationstegnet kommer før operanderne ( polsk notation ), infix - operationstegnet kommer mellem operanderne, eller postfix - operationstegnet kommer efter operanderne. Når antallet af operander er mere end to, er præfiks- og postfix-notationer mere økonomiske.
Den mest almindelige notation for disjunktionsoperationen er:
|| |Samtidig er notationen anbefalet af den internationale standard ISO 31-11 den mest udbredte i moderne matematik og matematisk logik [2] . Det dukkede ikke op med det samme: George Boole , der lagde grunden til den systematiske anvendelse af den symbolske metode til logik, arbejdede ikke med disjunktion (brugte i stedet streng disjunktion , som han betegnede med et + -tegn ), og William Jevons foreslog tegnet til adskillelse . Ernst Schroeder og P. S. Poretsky brugte igen tegnet + , men i forhold til den sædvanlige disjunktion [3] . Symbolet som betegnelse for disjunktion forekommer først i artiklen "Matematisk logik baseret på teorien om typer" [4] af Bertrand Russell (1908); det er afledt af lat. vel , som betyder "eller" [5] [6] . ·|·
Notationen ⋁for disjunktion blev også brugt i det tidlige programmeringssprog Algol 60 [7] . Men på grund af fraværet af et tilsvarende tegn i standardtegnsættene (for eksempel i ASCII eller EBCDIC ), der bruges på de fleste computere , gav de mest udbredte programmeringssprog andre notationer til disjunktion. I henholdsvis Fortran IV og PL/I blev betegnelserne og således brugt (med mulighed for at erstatte sidstnævnte med nøgleordet ) [8] ; det reserverede ord [9] [10] bruges i Pascal og Ada ; C- og C++-sprogene bruger notationen for bitvis disjunktion og for logisk disjunktion [11] ). .OR.| ORor|||
Endelig, under den naturlige rækkefølge af sandhedsværdierne af to-værdi logik (når det antages at ), viser det sig , at disjunktionen viser sig at være et særligt tilfælde af operationen med at beregne maksimum ; dette åbner op for den mest naturlige måde at definere disjunktionsoperationen i systemer med mange -værdilogik [12] [13] .
Den logiske funktion MAX i to-værdi (binær) logik kaldes disjunktion ( logisk "ELLER" , logisk addition eller blot "ELLER" ). Resultatet er lig med den største operand.
I boolsk algebra er en disjunktion en funktion af to, tre eller flere variable (de er også operander af en operation, de er også argumenter for en funktion). Resultatet er således , hvis alle operander er ens ; i alle andre tilfælde er resultatet .
sandhedstabel | ||
---|---|---|
Sandhedstabel for ternær (tre operander) disjunktion:
0 | 0 | 0 | 0 |
0 | 0 | en | en |
0 | en | 0 | en |
0 | en | en | en |
en | 0 | 0 | en |
en | 0 | en | en |
en | en | 0 | en |
en | en | en | en |
Operationen, kaldet disjunktion i binær logik , kaldes maksimum i flerværdilogik : , hvor , a er værdien af logik. Andre muligheder er mulige[ hvad? ] . Som regel forsøger de at opretholde kompatibilitet med boolsk algebra for værdierne af operanderne .
Navnet på denne operation maksimum giver mening i logikker med enhver værdi, inklusive i binær logik, og navnene disjunktion , logisk "ELLER" , logisk addition og simpelthen "ELLER" er karakteristiske for binær logik og bruges sjældnere, når man flytter til flerværdilogikker.
I den klassiske sætningsregning er egenskaberne af en disjunktion defineret ved hjælp af aksiomer . Den klassiske sætningsregning kan gives af forskellige aksiomer, og nogle af dem vil beskrive disjunktionens egenskaber. En af de mest almindelige muligheder inkluderer 3 aksiomer for disjunktion:
Disse aksiomer kan bruges til at bevise andre formler, der indeholder disjunktionsoperationen. Bemærk venligst, at i den klassiske propositionelregning beregnes resultatet ikke ud fra værdierne af operanderne (som i boolsk algebra), men det er påkrævet at bevise formlen som helhed baseret på aksiomer og inferensregler.
Mnemonreglen for disjunktion med et vilkårligt antal input er: Outputtet vil være:
Med hensyn til mængdeteori er disjunktion analog med driften af union .
På computersprog er der to hovedvarianter af disjunktion: logisk "ELLER" og bitvis "ELLER". For eksempel i C/C++/Perl/PHP er logisk "ELLER" angivet med symbolet "||", og bitvist "ELLER" med symbolet "|". På Pascal/Delphi-sprog er begge slags disjunktioner angivet ved hjælp af " eller " nøgleordet , og resultatet af operationen bestemmes af typen af operander. Hvis operanderne er af boolesk type (for eksempel boolesk), udføres en logisk operation, hvis et heltal (for eksempel byte) er en bitvis operation.
Det logiske "ELLER" bruges i betingede springoperatorer eller i lignende tilfælde, når et resultat eller er påkrævet . For eksempel:
hvis ( a || b ) { /* nogle handlinger */ };Resultatet vil være ens, hvis begge operander er ens eller . I alle andre tilfælde vil resultatet være .
I dette tilfælde anvendes standardkonventionen: Hvis værdien af venstre operand er lig med , beregnes værdien af højre operand ikke (i stedet kan der være en kompleks formel). Denne konvention fremskynder programudførelsen og er en nyttig teknik i nogle tilfælde. Delphi-kompileren understøtter et særligt direktiv, der inkluderer
{$B-}eller slukke
{$B+}lignende adfærd. For eksempel, hvis den venstre operand kontrollerer, om den højre operand skal evalueres:
if ( a == NULL || a -> x == 0 ) { /* nogle handlinger */ };I dette eksempel, på grund af afkrydsningen på venstre operand, vil der aldrig forekomme en nul pointer-dereference på den højre operand.
Den bitvise OR udfører den sædvanlige boolske algebraoperation på alle bits af venstre og højre operand i par. For eksempel,
hvis | |
a = | |
b= | |
derefter | |
a ELLER b = |
Ligheden mellem disjunktion og konjunktionen "eller" i naturligt sprog bliver ofte påpeget, når den bruges i betydningen "enten dette eller det eller begge dele på én gang." I juridiske dokumenter skriver de ofte: "og (eller)", nogle gange "og/eller", hvilket betyder "enten dette eller det eller begge dele på én gang." Det sammensatte udsagn "A og/eller B" betragtes som falsk, når både udsagn A og B er falsk, ellers er det sammensatte udsagn sandt. Dette svarer nøjagtigt til definitionen af disjunktion i boolsk algebra, hvis "sand" er angivet med , og "falsk" med .
Tvetydigheden af naturligt sprog ligger i det faktum, at foreningen "eller" bruges i to betydninger: enten for at betegne disjunktion, så for en anden operation - streng disjunktion ( eksklusiv "ELLER" ).
Ordbøger og encyklopædier | |
---|---|
I bibliografiske kataloger |
booleske operationer | |
---|---|
|
Logikker | |||||||||
---|---|---|---|---|---|---|---|---|---|
Filosofi • Semantik • Syntaks • Historie | |||||||||
Logiske grupper |
| ||||||||
Komponenter |
| ||||||||
Liste over booleske symboler |