Examinarea de stat unificată în informatică Metode de rezolvare a ecuațiilor logice. Rezolvarea ecuațiilor logice în matematică

Cum să rezolvi unele probleme din secțiunile A și B ale examenului de informatică

Lecția numărul 3. Logici. Funcții logice. Rezolvarea ecuațiilor

Un număr mare de sarcini USE sunt dedicate logicii propozițiilor. Pentru a rezolva majoritatea dintre ele, este suficient să cunoașteți legile de bază ale logicii propoziționale, cunoașterea tabelelor de adevăr ale funcțiilor logice ale unei și două variabile. Voi da legile de bază ale logicii propoziționale.

  1. Comutativitatea disjuncției și a conjuncției:
    a ˅ b ≡ b ˅ a
    a^b ≡ b^a
  2. Legea distributivă privind disjuncția și conjuncția:
    a ˅ (b^c) ≡ (a ˅ b) ^(a ˅ c)
    a ^ (b ˅ c) ≡ (a ^ b) ˅ (a ^ c)
  3. Negație negativă:
    ¬(¬a) ≡ a
  4. Consecvență:
    a ^ ¬a ≡ fals
  5. Al treilea exclusiv:
    a ˅ ¬a ≡ adevărat
  6. Legile lui De Morgan:
    ¬(a ˅ b) ≡ ¬a ˄ ¬b
    ¬(a ˄ b) ≡ ¬a ˅ ¬b
  7. Simplificare:
    a ˄ a ≡ a
    a ˅ a ≡ a
    a ˄ adevărat ≡ a
    a ˄ fals ≡ fals
  8. Absorbţie:
    a ˄ (a ˅ b) ≡ a
    a ˅ (a ˄ b) ≡ a
  9. Înlocuirea implicației
    a → b ≡ ¬a ˅ b
  10. Schimbarea identității
    a ≡ b ≡(a ˄ b) ˅ (¬a ˄ ¬b)

Reprezentarea funcţiilor logice

Orice funcție logică a n variabile - F(x 1 , x 2 , ... x n) poate fi definită printr-un tabel de adevăr. Un astfel de tabel conține 2 n seturi de variabile, pentru fiecare dintre acestea fiind specificată valoarea funcției de pe acest set. Această metodă este bună atunci când numărul de variabile este relativ mic. Deja pentru n > 5, reprezentarea devine slab vizibilă.

O altă modalitate este de a defini funcția printr-o formulă, folosind funcții destul de simple cunoscute. Sistemul de funcții (f 1 , f 2 , … f k ) se numește complet dacă orice funcție logică poate fi exprimată printr-o formulă care conține numai funcții f i .

Sistemul de funcții (¬, ˄, ˅) este complet. Legile 9 și 10 sunt exemple ale modului în care implicația și identitatea sunt exprimate prin negație, conjuncție și disjuncție.

De fapt, sistemul a două funcții este de asemenea complet - negație și conjuncție sau negație și disjuncție. Reprezentările decurg din legile lui De Morgan care permit exprimarea unei conjuncții prin negație și disjuncție și, în consecință, exprimarea unei disjuncții prin negație și conjuncție:

(a ˅ b) ≡ ¬(¬a ˄ ¬b)
(a ˄ b) ≡ ¬(¬a ˅ ¬b)

În mod paradoxal, un sistem format dintr-o singură funcție este complet. Există două funcții binare - anticonjuncție și antidisjuncție, numite săgeata lui Pierce și lovitura lui Schaeffer, reprezentând un sistem gol.

Funcțiile de bază ale limbajelor de programare includ de obicei identitatea, negația, conjuncția și disjuncția. ÎN UTILIZAȚI sarcini alături de aceste funcţii există adesea o implicaţie.

Să ne uităm la câteva sarcini simple legate de funcțiile logice.

Sarcina 15:

Este dat un fragment din tabelul de adevăr. Care dintre cele trei funcții date corespunde acestui fragment?

x1 x2 x3 x4 F
1 1 0 0 1
0 1 1 1 1
1 0 0 1 0
  1. (X 1 → X 2) ˄ ¬ X 3 ˅ X 4
  2. (¬X 1 ˄ X 2) ˅ (¬X 3 ˄ X 4)
  3. ¬ X 1 ˅ X 2 ˅ (X 3 ˄ X 4)

Caracteristica numărul 3.

Pentru a rezolva problema, trebuie să cunoașteți tabelele de adevăr ale funcțiilor de bază și să vă amintiți despre prioritățile operațiunilor. Permiteți-mi să vă reamintesc că conjuncția (înmulțirea logică) are o prioritate mai mare și se realizează înaintea disjuncției (adunarea logică). La calcul, este ușor de observat că funcțiile cu numerele 1 și 2 de pe al treilea set au valoarea 1 și din acest motiv nu corespund fragmentului.

Sarcina 16:

Care dintre următoarele numere îndeplinește condiția:

(cifrele, începând cu cifra cea mai semnificativă, merg în ordine descrescătoare) → (număr - par) ˄ (cifra cea mai mică - par) ˄ (cifra cea mai mare - impar)

Dacă există mai multe astfel de numere, indicați-l pe cel mai mare.

  1. 13579
  2. 97531
  3. 24678
  4. 15386

Condiția este îndeplinită de numărul 4.

Primele două numere nu îndeplinesc condiția pentru motivul că cea mai mică cifră este impară. O conjuncție de condiții este falsă dacă unul dintre termenii conjuncției este fals. Pentru al treilea număr, condiția pentru cea mai mare cifră nu este îndeplinită. Pentru al patrulea număr sunt îndeplinite condițiile impuse cifrelor minore și majore ale numărului. Primul termen al conjuncției este și el adevărat, deoarece o implicație este adevărată dacă premisa ei este falsă, ceea ce este cazul aici.

Problema 17: Doi martori au depus mărturie după cum urmează:

Primul martor: Dacă A este vinovat, atunci B este cu siguranță vinovat, iar C este nevinovat.

Al doilea martor: Doi sunt vinovați. Și unul dintre cei rămași este cu siguranță vinovat și vinovat, dar nu pot spune exact cine.

Ce concluzii despre vinovăția lui A, B și C pot fi trase din probe?

Răspuns: Din mărturie rezultă că A și B sunt vinovați, dar C este nevinovat.

Soluție: Desigur, răspunsul poate fi dat pe baza bunului simț. Dar să vedem cum se poate face acest lucru strict și formal.

Primul lucru de făcut este să oficializați declarațiile. Să introducem trei variabile booleene, A, B și C, fiecare dintre acestea fiind adevărată (1) dacă suspectul corespunzător este vinovat. Apoi, mărturia primului martor este dată prin formula:

A → (B ˄ ¬C)

Depozitia celui de-al doilea martor este data prin formula:

A ˄ ((B ˄ ¬C) ˅ (¬B ˄ C))

Se presupune că mărturiile ambilor martori sunt adevărate și reprezintă conjuncția formulelor corespunzătoare.

Să construim un tabel de adevăr pentru aceste lecturi:

A B C F1 F2 F 1 F 2
0 0 0 1 0 0
0 0 1 1 0 0
0 1 0 1 0 0
0 1 1 1 0 0
1 0 0 0 0 0
1 0 1 0 1 0
1 1 0 1 1 1
1 1 1 0 0 0

Probele sumare sunt adevărate într-un singur caz, ceea ce duce la un răspuns clar - A și B sunt vinovați, iar C este nevinovat.

De asemenea, din analiza acestui tabel rezultă că depoziţia celui de-al doilea martor este mai informativă. Din adevărul mărturiei sale decurg doar două lucruri. opțiuni posibile A și B sunt vinovați și C este nevinovat sau A și C sunt vinovați și B este nevinovat. Depoziția primului martor este mai puțin informativă - sunt 5 diverse opțiuni corespunzător mărturiei sale. Împreună, mărturiile ambilor martori dau un răspuns fără echivoc cu privire la vinovăția suspecților.

Ecuații logice și sisteme de ecuații

Fie F(x 1 , x 2 , …x n) o funcție logică a n variabile. Ecuația logică este:

F(x 1, x 2, ... x n) \u003d C,

Constanta C are valoarea 1 sau 0.

O ecuație logică poate avea de la 0 la 2n soluții diferite. Dacă C este egal cu 1, atunci soluțiile sunt toate acele seturi de variabile din tabelul de adevăr pe care funcția F ia valoarea adevărată (1). Mulțimile rămase sunt soluții ale ecuației pentru C, zero. Putem considera întotdeauna doar ecuații de forma:

F(x 1 , x 2 , …x n) = 1

Într-adevăr, să fie dată ecuația:

F(x 1 , x 2 , …x n) = 0

În acest caz, puteți merge la ecuația echivalentă:

¬F(x 1 , x 2 , …x n) = 1

Luați în considerare un sistem de k ecuații logice:

F 1 (x 1, x 2, ... x n) \u003d 1

F 2 (x 1, x 2, ... x n) \u003d 1

F k (x 1 , x 2 , …x n) = 1

Soluția sistemului este un set de variabile pe care sunt satisfăcute toate ecuațiile sistemului. În ceea ce privește funcțiile logice, pentru a obține o soluție a sistemului de ecuații logice, ar trebui să găsim o mulțime pe care funcția logică Ф este adevărată, reprezentând conjuncția funcțiilor originale F:

Ф = F 1 ˄ F 2 ˄ … F k

Dacă numărul de variabile este mic, de exemplu, mai mic de 5, atunci nu este dificil să construiți un tabel de adevăr pentru funcția Ф, care vă permite să spuneți câte soluții are sistemul și care sunt mulțimile care dau soluții.

În unele sarcini ale examenului de stat unificat privind găsirea de soluții la un sistem de ecuații logice, numărul de variabile ajunge la valoarea de 10. Apoi construirea unui tabel de adevăr devine o sarcină aproape de nerezolvat. Rezolvarea problemei necesită o abordare diferită. Pentru un sistem arbitrar de ecuații, nu există mod general, care este diferit de enumerare, care permite rezolvarea unor astfel de probleme.

În problemele propuse în examen, soluția se bazează de obicei pe luarea în considerare a specificului sistemului de ecuații. Repet, cu excepția enumerarii tuturor variantelor unui set de variabile, nu există o modalitate generală de a rezolva problema. Soluția trebuie construită pe baza specificului sistemului. Este adesea util să se efectueze o simplificare preliminară a unui sistem de ecuații folosind legile logice cunoscute. O altă tehnică utilă pentru rezolvarea acestei probleme este următoarea. Nu ne interesează toate mulțimile, ci doar acelea pe care funcția Ф are valoarea 1. În loc să construim un tabel de adevăr complet, vom construi analogul său - un arbore de decizie binar. Fiecare ramură a acestui arbore corespunde unei soluții și specifică o mulțime pe care funcția Ф are valoarea 1. Numărul de ramuri din arborele de decizie coincide cu numărul de soluții ale sistemului de ecuații.

Ce este un arbore de decizie binar și cum este construit, voi explica cu exemple de mai multe sarcini.

Problema 18

Câte seturi diferite de valori ale variabilelor booleene x1, x2, x3, x4, x5, y1, y2, y3, y4, y5 există care satisfac un sistem de două ecuații?

Răspuns: Sistemul are 36 de soluții diferite.

Rezolvare: Sistemul de ecuații include două ecuații. Să găsim numărul de soluții pentru prima ecuație, în funcție de 5 variabile - x 1 , x 2 , …x 5 . Prima ecuație poate fi considerată la rândul său ca un sistem de 5 ecuații. După cum sa arătat, sistemul de ecuații reprezintă de fapt o conjuncție de funcții logice. Afirmația inversă este de asemenea adevărată - conjuncția condițiilor poate fi considerată ca un sistem de ecuații.

Să construim un arbore de decizie pentru implicația (x1→ x2), primul termen al conjuncției, care poate fi considerată ca prima ecuație. Iată cum arată reprezentarea grafică a acestui arbore:

Arborele este format din două niveluri în funcție de numărul de variabile din ecuație. Primul nivel descrie prima variabilă X 1 . Două ramuri ale acestui nivel reflectă valorile posibile ale acestei variabile - 1 și 0. La al doilea nivel, ramurile arborelui reflectă numai acele valori posibile ale variabilei X 2 pentru care ecuația ia valoarea adevărată. Deoarece ecuația definește o implicație, ramura pe care X 1 are valoarea 1 necesită ca X 2 să aibă valoarea 1 pe acea ramură. Ramura pe care X 1 are valoarea 0 generează două ramuri cu valorile X 2 egale cu 0 și 1 Arborele construit definește trei soluții, pe care implicația X 1 → X 2 ia valoarea 1. Pe fiecare ramură se scrie setul corespunzător de valori variabile, care dă soluția ecuației.

Aceste seturi sunt: ​​((1, 1), (0, 1), (0, 0))

Să continuăm construirea arborelui de decizie adăugând următoarea ecuație, următoarea implicație X 2 → X 3 . Specificul sistemului nostru de ecuații este că fiecare nouă ecuație a sistemului utilizează o variabilă din ecuația anterioară, adăugând o nouă variabilă. Deoarece variabila X 2 are deja valori în arbore, atunci pe toate ramurile în care variabila X 2 are valoarea 1, variabila X 3 va avea și valoarea 1. Pentru astfel de ramuri, construcția arborelui continuă să nivelul următor, dar nu apar ramuri noi. Singura ramură în care variabila X 2 are valoarea 0 va da o ramură în două ramuri, unde variabila X 3 va obține valorile 0 și 1. Astfel, fiecare adăugare a unei noi ecuații, având în vedere specificul ei, adaugă câte una. soluţie. Prima ecuație originală:

(x1→x2) /\ (x2→x3) /\ (x3→x4) /\ (x4→x5) = 1
are 6 solutii. Iată cum arată arborele de decizie complet pentru această ecuație:

A doua ecuație a sistemului nostru este similară cu prima:

(y1→y2) /\ (y2→y3) /\ (y3→y4) /\ (y4→y5) = 1

Singura diferență este că ecuația folosește variabile Y. Această ecuație are și 6 soluții. Deoarece fiecare soluție variabilă X i poate fi combinată cu fiecare soluție variabilă Y j , numărul total de soluții este 36.

Rețineți că arborele de decizie construit oferă nu numai numărul de soluții (în funcție de numărul de ramuri), ci și soluțiile în sine, scrise pe fiecare ramură a arborelui.

Problema 19

Câte seturi diferite de valori ale variabilelor booleene x1, x2, x3, x4, x5, y1, y2, y3, y4, y5 există care îndeplinesc toate următoarele condiții?

(x1→x2) /\ (x2→x3) /\ (x3→x4) /\ (x4→x5) = 1
(y1→y2) /\ (y2→y3) /\ (y3→y4) /\ (y4→y5) = 1
(x1→ y1) = 1

Această sarcină este o modificare a sarcinii anterioare. Diferența este că se adaugă o altă ecuație care leagă variabilele X și Y.

Din ecuația X 1 → Y 1 rezultă că atunci când X 1 are valoarea 1 (există o astfel de soluție), atunci Y 1 are valoarea 1. Astfel, există o mulțime pe care X 1 și Y 1 au valorile ​​1. Când X 1 egal cu 0, Y 1 poate avea orice valoare, atât 0, cât și 1. Prin urmare, fiecare set cu X 1 egal cu 0 și există 5 astfel de mulțimi, corespunde tuturor celor 6 seturi cu variabile Y. Prin urmare , numărul total de soluții este 31 .

Problema 20

(¬X 1 ˅ X 2) ˄ (¬X 2 ˅ X 3) ˄ (¬X 3 ˅ X 4) ˄ (¬X 4 ˅ X 5) ˄ (¬X 5 ˅ X 1) = 1

Rezolvare: amintindu-ne echivalența de bază, scriem ecuația noastră ca:

(X 1 → X 2) ˄ (X 2 → X 3) ˄ (X 3 → X 4) ˄ (X 4 → X 5) ˄ (X 5 → X 1) = 1

Un lanț ciclic de implicații înseamnă că variabilele sunt identice, deci ecuația noastră este echivalentă cu:

X 1 ≡ X 2 ≡ X 3 ≡ X 4 ≡ X 5 = 1

Această ecuație are două soluții când toți X i sunt fie 1, fie 0.

Problema 21

(X 1 → X 2) ˄ (X 2 → X 3) ˄ (X 3 → X 4) ˄ (X 4 → X 2) ˄ (X 4 → X 5) = 1

Soluție: La fel ca în problema 20, trecem de la implicații ciclice la identități prin rescrierea ecuației sub forma:

(X 1 → X 2) ˄ (X 2 ≡ X 3 ≡ X 4) ˄ (X 4 → X 5) = 1

Să construim un arbore de decizie pentru această ecuație:

Problema 22

Câte soluții are următorul sistem de ecuații?

((X 1 ≡X 2) ˄ (X 3 ≡X 4)) ˅(¬(X 1 ≡X 2) ˄ ¬(X 3 ≡X4)) = 0

((X 3 ≡X 4) ˄ (X5 ≡X 6)) ˅(¬(X 3 ≡X 4) ˄ ¬(X5 ≡X 6)) = 0

((X5 ≡X 6) ˄ (X 7 ≡X 8)) ˅(¬(X5 ≡X 6) ˄ ¬(X 7 ≡X8)) = 0

((X 7 ≡X 8) ˄ (X9 ≡X 10)) ˅(¬(X 7 ≡X 8) ˄ ¬(X9 ≡X10)) = 0

Raspuns: 64

Soluție: Treceți de la 10 variabile la 5 variabile introducând următoarea modificare a variabilelor:

Y1 = (X1 ≡ X2); Y 2 \u003d (X 3 ≡ X 4); Y3 = (X5 = X6); Y 4 \u003d (X 7 ≡ X 8); Y 5 \u003d (X 9 ≡ X 10);

Atunci prima ecuație va lua forma:

(Y 1 ˄ Y 2) ˅ (¬Y 1 ˄ ¬Y 2) = 0

Ecuația poate fi simplificată scriind-o astfel:

(Y 1 ≡ Y 2) = 0

Trecând la forma tradițională, scriem sistemul după simplificări în forma:

¬(Y 1 ≡ Y 2) = 1

¬(Y 2 ≡ Y 3) = 1

¬(Y 3 ≡ Y 4) = 1

¬(Y 4 ≡ Y 5) = 1

Arborele de decizie pentru acest sistem este simplu și constă din două ramuri cu valori variabile alternative:


Revenind la variabilele X originale, rețineți că fiecare valoare a variabilei Y corespunde la 2 valori ale variabilelor X, astfel încât fiecare soluție din variabilele Y generează 2 5 soluții în variabilele X. Două ramuri generează 2 * 2 5 soluții , deci numărul total de soluții este 64.

După cum puteți vedea, fiecare sarcină pentru rezolvarea unui sistem de ecuații necesită propria sa abordare. Un truc comun este de a efectua transformări echivalente pentru a simplifica ecuațiile. O tehnică comună este construirea arborilor de decizie. Abordarea aplicată seamănă parțial cu construcția unui tabel de adevăr cu particularitatea că nu sunt construite toate seturile de valori posibile ale variabilelor, ci numai acelea pe care funcția ia valoarea 1 (adevărat). Adesea, în problemele propuse nu este nevoie să se construiască un arbore decizional complet, deoarece deja în stadiul inițial este posibil să se stabilească regularitatea apariției noilor ramuri la fiecare nivel următor, așa cum sa făcut, de exemplu, în problema 18. .

În general, problemele pentru găsirea de soluții la un sistem de ecuații logice sunt exerciții matematice bune.

Dacă problema este dificil de rezolvat manual, atunci puteți încredința computerului soluția problemei prin scrierea unui program adecvat pentru rezolvarea ecuațiilor și a sistemelor de ecuații.

Este ușor să scrii un astfel de program. Un astfel de program va face față cu ușurință tuturor sarcinilor oferite în cadrul examenului.

Destul de ciudat, dar sarcina de a găsi soluții la sistemele de ecuații logice este dificilă și pentru un computer, se dovedește că un computer are limitele sale. Un computer poate face față cu ușurință sarcinilor în care numărul de variabile este de 20-30, dar va începe să se gândească mult timp la sarcini mai mari. Ideea este că funcția 2 n care specifică numărul de mulțimi este un exponent care crește rapid cu n. Atât de rapid încât un computer personal normal nu poate face față unei sarcini cu 40 de variabile într-o zi.

Program C# pentru rezolvarea ecuațiilor logice

Scrierea unui program pentru rezolvarea ecuațiilor logice este utilă din multe motive, fie și doar pentru că poate fi folosit pentru a verifica corectitudinea propriei soluții la problemele testului USE. Un alt motiv este că un astfel de program este un exemplu excelent de problemă de programare care îndeplinește cerințele pentru problemele de categoria C în USE.

Ideea de a construi un program este simplă - se bazează pe o enumerare completă a tuturor seturilor posibile de valori variabile. Deoarece numărul de variabile n este cunoscut pentru o anumită ecuație logică sau sistem de ecuații, este cunoscut și numărul de mulțimi - 2 n care trebuie sortate. Folosind funcțiile de bază ale limbajului C# - negație, disjuncție, conjuncție și identitate, este ușor de scris un program care, pentru un anumit set de variabile, calculează valoarea unei funcții logice corespunzătoare unei ecuații logice sau unui sistem de ecuații.

Într-un astfel de program, trebuie să construiți un ciclu după numărul de seturi, în corpul ciclului, după numărul setului, să formați setul în sine, să calculați valoarea funcției pe acest set și dacă această valoare este egal cu 1, atunci mulțimea oferă o soluție ecuației.

Singura dificultate care apare în implementarea programului este legată de sarcina de a forma setul de valori variabile în sine prin numărul setului. Frumusețea acestei sarcini este că această sarcină aparent dificilă, de fapt, se rezumă la o sarcină simplă care a apărut deja în mod repetat. Într-adevăr, este suficient să înțelegem că setul de valori ale variabilelor corespunzătoare numărului i, format din zerouri și unu, reprezintă reprezentarea binară a numărului i. Deci sarcina complexă de a obține un set de valori ale variabilelor prin numărul setului se reduce la binecunoscuta problemă a conversiei unui număr într-un sistem binar.

Așa arată funcția C# care ne rezolvă problema:

///

/// program de numărare a numărului de soluții

/// ecuație logică (sistem de ecuații)

///

///

/// funcție logică - metodă,

/// a cărui semnătură este stabilită de delegatul DF

///

/// numărul de variabile

/// număr de soluții

static int Rezolva ecuații (DF fun, int n)

bool set = new bool[n];

int m = (int)Math.Pow(2, n); //numar de seturi

int p = 0, q = 0, k = 0;

//Enumerarea completă după numărul de seturi

pentru (int i = 0; i< m; i++)

//Formarea următorului set — set,

//date de reprezentarea binară a numărului i

pentru (int j = 0; j< n; j++)

k = (int)Math.Pow(2, j);

//Calculează valoarea funcției pe set

Pentru a înțelege programul, sper că explicațiile despre ideea programului și comentariile din textul acestuia vor fi suficiente. Mă voi opri doar asupra explicației titlului funcției de mai sus. Funcția SolveEquations are doi parametri de intrare. Parametrul fun specifică o funcție logică corespunzătoare ecuației sau sistemului de ecuații care se rezolvă. Parametrul n specifică numărul de variabile din funcția fun. Ca rezultat, funcția SolveEquations returnează numărul de soluții ale funcției logice, adică numărul de mulțimi pe care funcția evaluează la adevărat.

Pentru școlari, se obișnuiește când pentru o anumită funcție F(x) parametrul de intrare x este o variabilă de tip aritmetic, șir sau boolean. În cazul nostru, se folosește un design mai puternic. Funcția SolveEquations se referă la funcții de ordin superior - funcții de tip F(f), ai căror parametri pot fi nu numai variabile simple, ci și funcții.

Clasa de funcții care poate fi transmisă ca parametru la funcția SolveEquations este definită după cum urmează:

delegat bool DF(bool vars);

Această clasă include toate funcțiile care sunt transmise ca parametru un set de valori ale variabilelor booleene specificate de matricea vars. Rezultatul este o valoare booleană reprezentând valoarea funcției din acest set.

În concluzie, voi oferi un program în care funcția SolveEquations este folosită pentru a rezolva mai multe sisteme de ecuații logice. Funcția SolveEquations face parte din următoarea clasă ProgramCommon:

clasa ProgramCommon

delegat bool DF(bool vars);

static void Main(string args)

Console.WriteLine("Funcție și soluții - " +

SolveEquations(FunAnd, 2));

Console.WriteLine("Funcția are 51 de soluții - " +

Rezolvare ecuații(Fun51, 5));

Console.WriteLine("Funcția are 53 de soluții - " +

Rezolvare ecuații(Fun53, 10));

static bool FunAnd(bool vars)

returnează vars && vars;

static bool Fun51(bool vars)

f = f && (!vars || vars);

f = f && (!vars || vars);

f = f && (!vars || vars);

f = f && (!vars || vars);

f = f && (!vars || vars);

static bool Fun53(bool vars)

f = f && ((vars == vars) || (vars == vars));

f = f && ((vars == vars) || (vars == vars));

f = f && ((vars == vars) || (vars == vars));

f = f && ((vars == vars) || (vars == vars));

f = f && ((vars == vars) || (vars == vars));

f = f && ((vars == vars) || (vars == vars));

f = f && (!((vars == vars) || (vars == vars)));

Iată cum arată rezultatele soluției pentru acest program:

10 sarcini pentru muncă independentă

  1. Care dintre cele trei funcții sunt echivalente:
    1. (X → Y) ˅ ¬Y
    2. ¬(X ˅ ¬Y) ˄ (X → ¬Y)
    3. ¬X ˄ Y
  2. Este dat un fragment din tabelul de adevăr:
x1 x2 x3 x4 F
1 0 0 1 1
0 1 1 1 1
1 0 1 0 0

Care dintre cele trei funcții corespunde acestui fragment:

  1. (X 1 ˅ ¬X 2) ˄ (X 3 → X 4)
  2. (X 1 → X 3) ˄ X 2 ˅ X 4
  3. X 1 ˄ X 2 ˅ (X 3 → (X 1 ˅ X 4))
  4. Juriul este format din trei persoane. Decizia se ia dacă președintele juriului o votează, susținut de cel puțin unul dintre membrii juriului. Altfel, nu se ia nicio decizie. Construiți o funcție logică care formalizează procesul de luare a deciziilor.
  5. X câștigă peste Y dacă patru aruncări de monede ies cu capul de trei ori. Definiți o funcție booleană care descrie profitul X.
  6. Cuvintele dintr-o propoziție sunt numerotate începând de la unu. O propoziție este considerată bine formată dacă sunt îndeplinite următoarele reguli:
    1. Dacă un cuvânt cu număr par se termină cu o vocală, atunci următorul cuvânt, dacă există, trebuie să înceapă cu o vocală.
    2. Dacă un cuvânt cu numere impar se termină cu o consoană, atunci următorul cuvânt, dacă există, trebuie să înceapă cu o consoană și să se termine cu o vocală.
      Care dintre următoarele propoziții sunt corecte:
    3. Mama a spălat-o pe Masha cu săpun.
    4. Liderul este întotdeauna un model.
    5. Adevărul este bun, dar fericirea este mai bună.
  7. Câte soluții are ecuația:
    (a ˄ ¬ b) ˅ (¬a ˄ b) → (c ˄ d) = 1
  8. Enumerați toate soluțiile ecuației:
    (a → b) → c = 0
  9. Câte soluții are următorul sistem de ecuații:
    X 0 → X 1 ˄ X 1 → X 2 = 1
    X 2 → X 3 ˄ X 3 → X 4 = 1
    X 5 → X 6 ˄ X 6 → X 7 = 1
    X 7 → X 8 ˄ X 8 → X 9 = 1
    X 0 → X 5 = 1
  10. Câte soluții are ecuația:
    ((((X 0 → X 1) → X 2) → X 3) → X 4) → X 5 = 1

Răspunsuri la sarcini:

  1. Funcțiile b și c sunt echivalente.
  2. Fragmentul corespunde funcției b.
  3. Fie ca variabila booleană P să ia valoarea 1 atunci când președintele juriului votează „pentru” decizia. Variabilele M 1 și M 2 reprezintă opinia membrilor juriului. Funcția logică care specifică adoptarea unei decizii pozitive poate fi scrisă astfel:
    P ˄ (M 1 ˅ M 2)
  4. Fie ca variabila booleană P i să ia valoarea 1 atunci când aruncarea i-a de monede apare cu capul. Funcția logică care definește câștigul X poate fi scrisă după cum urmează:
    ¬((¬P 1 ˄ (¬P 2 ˅ ¬P 3 ˅ ¬P 4)) ˅
    (¬P 2 ˄ (¬P 3 ˅ ¬P 4)) ˅
    (¬P 3 ˄ ¬P 4))
  5. Oferta b.
  6. Ecuația are 3 soluții: (a = 1; b = 1; c = 0); (a = 0; b = 0; c = 0); (a=0; b=1; c=0)

Metode de rezolvare a sistemelor de ecuaţii logice

Puteți rezolva un sistem de ecuații logice, de exemplu, folosind un tabel de adevăr (dacă numărul de variabile nu este prea mare) sau folosind un arbore de decizie, după simplificarea fiecărei ecuații.

1. Metoda de modificare a variabilelor.

Introducerea de noi variabile face posibilă simplificarea sistemului de ecuații prin reducerea numărului de necunoscute.Noile variabile trebuie să fie independente unele de altele. După rezolvarea sistemului simplificat, este necesar să revenim la variabilele originale.

Luați în considerare aplicarea acestei metode pe un exemplu specific.

Exemplu.

((X1 ≡ X2) ∧ (X3 ≡ X4)) ∨ (¬(X1 ≡ X2) ∧ ¬(X3 ≡ X4)) = 0

((X3 ≡ X4) ∧ (X5 ≡ X6)) ∨ (¬(X3 ≡ X4) ∧ ¬(X5 ≡ X6)) = 0

((X5 ≡ X6) ∧ (X7 ≡ X8)) ∨ (¬(X5 ≡ X6) ∧ ¬(X7 ≡ X8)) = 0

((X7 ≡ X8) ∧ (X9 ≡ X10)) ∨ (¬(X7 ≡ X8) ∧ ¬(X9 ≡ X10)) = 0

Soluţie:

Să introducem noi variabile: А=(X1≡X2); B=(X3 ≡ X4); С=(X5 ≡ X6); D=(X7 ≡ X8); E=(X9 ≡ X10).

(Atenție! Fiecare dintre variabilele lor x1, x2, …, x10 trebuie inclusă doar într-una dintre noile variabilele A, B, C, D, E, adică noile variabile sunt independente unele de altele).

Atunci sistemul de ecuații va arăta astfel:

(A ∧ B) ∨ (¬A ∧ ¬B)=0

(B ∧ C) ∨ (¬B ∧ ¬C)=0

(C ∧ D) ∨ (¬C ∧ ¬D)=0

(D ∧ E) ∨ (¬D ∧ ¬E)=0

Să construim un arbore de decizie al sistemului rezultat:

Se consideră ecuația A=0, adică. (X1≡ X2)=0. Are 2 rădăcini:

X1 ≡ X2

Din același tabel se poate observa că ecuația A \u003d 1 are și 2 rădăcini. Să aranjam numărul de rădăcini pe arborele de decizie:

Pentru a găsi numărul de soluții pentru o ramură, trebuie să înmulțiți numărul de soluții la fiecare nivel. Ramura stângă are 2⋅ 2 ⋅ 2 ⋅ 2 ⋅ 2=32 solutii; ramura dreaptă are și 32 de soluții. Acestea. intregul sistem are 32+32=64 solutii.

Raspuns: 64.

2. Metoda de raționament.

Complexitatea rezolvării sistemelor de ecuații logice constă în greutatea arborelui decizional complet. Metoda de raționament vă permite să nu construiți întregul copac, dar în același timp să înțelegeți câte ramuri va avea. Să luăm în considerare această metodă pe exemple specifice.

Exemplul 1 Câte seturi diferite de valori ale variabilelor booleene x1, x2, x3, x4, x5, y1, y2, y3, y4, y5 există care îndeplinesc toate următoarele condiții?

(x1→x2) /\ (x2→x3) /\ (x3→x4) /\ (x4→x5) = 1

(y1→y2) /\ (y2→y3) /\ (y3→y4) /\ (y4→y5) = 1

x1\/y1 =1

Răspunsul nu trebuie să enumere toate seturile diferite de valori ale variabilelor x1, x2, x3, x4, x5, y1, y2, y3, y4, y5 sub care sistemul de egalități dat este satisfăcut. Ca răspuns, trebuie să indicați numărul de astfel de seturi.

Solutie:

Prima și a doua ecuație conțin variabile independente care sunt legate printr-o a treia condiție. Să construim un arbore de decizie pentru prima și a doua ecuație.

Pentru a reprezenta arborele de decizie al sistemului din prima și a doua ecuație, este necesar să se continue fiecare ramură a primului arbore cu un arbore pentru variabile la . Arborele astfel construit va conține 36 de ramuri. Unele dintre aceste ramuri nu satisfac a treia ecuație a sistemului. Notați pe primul copac numărul de ramuri ale copacului"la" , care satisfac a treia ecuație:

Să lămurim: pentru a îndeplini a treia condiție, la x1=0, trebuie să fie y1=1, adică toate ramurile arborelui"X" , unde x1=0 poate fi continuat cu o singură ramură din arbore"la" . Și doar pentru o ramură a copacului"X" (dreapta) se potrivesc tuturor ramurilor copacului"la". Astfel, arborele complet al întregului sistem conține 11 ramuri. Fiecare ramură reprezintă o soluție a sistemului original de ecuații. Deci întregul sistem are 11 soluții.

Raspuns: 11.

Exemplul 2 Câte soluții diferite are sistemul de ecuații

(X1 ≡ X2) ∨ (X1 ∧ X10) ∨ (¬X1 ∧ ¬X10)= 1

(X2 ≡ X3) ∨ (X2 ∧ X10) ∨ (¬X2 ∧ ¬X10)= 1.

………………

(X9 ≡ X10) ∨ (X9 ∧ X10) ∨ (¬X9 ∧ ¬X10)= 1

(X1 ≡ X10) = 0

unde x1, x2, …, x10 sunt variabile booleene? Răspunsul nu trebuie să enumere toate seturile diferite de valori variabile pentru care este valabilă această egalitate. Ca răspuns, trebuie să indicați numărul de astfel de seturi.

Solutie: Să simplificăm sistemul. Să construim un tabel de adevăr al părții din prima ecuație:

X1 ∧ X10

¬X1 ∧ ¬X10

(X1 ∧ X10) ∨ (¬X1 ∧ ¬X10)

Atenție la ultima coloană, se potrivește cu rezultatul acțiunii X1 ≡ X10.

X1 ≡ X10

După simplificare, obținem:

(X1 ≡ X2) ∨ (X1 ≡ X10)=1

(X2 ≡ X3) ∨ (X2 ≡ X10)=1

(X3 ≡ X4) ∨ (X3 ≡ X10)=1

……

(X9 ≡ X10) ∨ (X9 ≡ X10)=1

(X1 ≡ X10) = 0

Luați în considerare ultima ecuație:(X1 ≡ X10) = 0, adică. x1 nu ar trebui să fie același cu x10. Pentru ca prima ecuație să fie egală cu 1, egalitatea trebuie să fie valabilă(X1 ≡ X2)=1, adică x1 trebuie să se potrivească cu x2.

Să construim un arbore de decizie pentru prima ecuație:

Luați în considerare a doua ecuație: pentru x10=1 și pentru x2=0 parantezatrebuie să fie egal cu 1 (adică x2 este același cu x3); la x10=0 și la x2=1 paranteză(X2 ≡ X10)=0, deci paranteză (X2 ≡ X3) trebuie să fie egal cu 1 (adică x2 este același cu x3):

Argumentând în acest fel, construim un arbore de decizie pentru toate ecuațiile:

Astfel, sistemul de ecuații are doar 2 soluții.

Raspuns: 2.

Exemplul 3

Câte seturi diferite de valori ale variabilelor booleene x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4 există care îndeplinesc toate următoarele condiții?

(x1→x2) /\ (x2→x3) /\ (x3→x4) = 1

(¬x1 /\ y1 /\ z1) \/ (x1 /\ ¬y1 /\ z1) \/ (x1 /\ y1 /\ ¬z1) = 1

(¬x2 /\ y2 /\ z2) \/ (x2 /\ ¬y2 /\ z2) \/ (x2 /\ y2 /\ ¬z2) = 1

(¬x3 /\ y3 /\ z3) \/ (x3 /\ ¬y3 /\ z3) \/ (x3 /\ y3 /\ ¬z3) = 1

(¬x4 /\ y4 /\ z4) \/ (x4 /\ ¬y4 /\ z4) \/ (x4 /\ y4 /\ ¬z4) = 1

Soluţie:

Să construim un arbore de decizie al primei ecuații:

Luați în considerare a doua ecuație:

  • Când x1=0 : a doua și a treia paranteză vor fi 0; pentru ca prima paranteză să fie egală cu 1, trebuie să y1=1 , z1=1 (adică în acest caz - 1 soluție)
  • Cu x1=1 : prima paranteză va fi 0; al doilea sau a treia paranteză trebuie să fie egală cu 1; a doua paranteză va fi egală cu 1 când y1=0 și z1=1; a treia paranteză va fi egală cu 1 pentru y1=1 și z1=0 (adică în acest caz - 2 soluții).

La fel pentru restul ecuațiilor. Observați numărul de soluții obținute pentru fiecare nod al arborelui:

Pentru a afla numărul de soluții pentru fiecare ramură, înmulțim numerele obținute separat pentru fiecare ramură (de la stânga la dreapta).

1 ramură: 1 ⋅ 1 ⋅ 1 ⋅ 1 = 1 soluție

2 ramură: 1 ⋅ 1 ⋅ 1 ⋅ 2 = 2 soluții

Ramura a 3-a: 1 ⋅ 1 ⋅ 2 ⋅ 2 = 4 soluții

4 ramură: 1 ⋅ 2 ⋅ 2 ⋅ 2 = 8 soluții

5 ramură: 2 ⋅ 2 ⋅ 2 ⋅ 2=16 soluții

Să adunăm numerele obținute: în total 31 de soluții.

Raspuns: 31.

3. Creșterea regulată a numărului de rădăcini

În unele sisteme, numărul de rădăcini ale următoarei ecuații depinde de numărul de rădăcini ale ecuației anterioare.

Exemplul 1 Câte seturi diferite de valori ale variabilelor booleene x1, x2, x3, x4, x5, x6, x7, x8, x9, x10 există care îndeplinesc toate următoarele condiții?

¬(x1 ≡ x2) ∧ ((x1 ∧ ¬x3) ∨ (¬x1 ∧ x3)) = 0

¬(x2 ≡ x3) ∧ ((x2 ∧ ¬x4) ∨ (¬x2 ∧ x4)) = 0

¬(x8 ≡ x9) ∧ ((x8 ∧ ¬x10) ∨ (¬x8 ∧ x10)) = 0

Simplifica prima ecuatie:(x1 ∧ ¬x3) ∨ (¬x1 ∧ x3)=x1 ⊕ x3=¬(x1 ≡ x3). Apoi sistemul va lua forma:

¬(x1 ≡ x2) ∧ ¬(x1 ≡ x3) = 0

¬(x2 ≡ x3) ∧ ¬(x2 ≡ x4)= 0

¬(x8 ≡ x9) ∧ ¬(x8 ≡ x10) = 0

etc.

Fiecare ecuație următoare are cu 2 rădăcini mai multe decât cea anterioară.

4 ecuația are 12 rădăcini;

Ecuația 5 are 14 rădăcini

Ecuația 8 are 20 de rădăcini.

Răspuns: 20 de rădăcini.

Uneori, numărul de rădăcini crește conform legii numerelor Fibonacci.

Rezolvarea unui sistem de ecuații logice necesită o abordare creativă.


Fie o funcție logică a n variabile. Ecuația logică este:

Constanta C are valoarea 1 sau 0.

O ecuație logică poate avea de la 0 la diverse soluții. Dacă C este egal cu 1, atunci soluțiile sunt toate acele seturi de variabile din tabelul de adevăr pe care funcția F ia valoarea adevărată (1). Mulțimile rămase sunt soluții ale ecuației pentru C egale cu zero. Putem considera întotdeauna doar ecuații de forma:

Într-adevăr, să fie dată ecuația:

În acest caz, puteți merge la ecuația echivalentă:

Luați în considerare un sistem de k ecuații logice:

Soluția sistemului este un set de variabile pe care sunt satisfăcute toate ecuațiile sistemului. În ceea ce privește funcțiile logice, pentru a obține o soluție a sistemului de ecuații logice, ar trebui să găsim o mulțime pe care funcția logică Ф este adevărată, reprezentând conjuncția funcțiilor originale:

Dacă numărul de variabile este mic, de exemplu, mai mic de 5, atunci nu este dificil să construiți un tabel de adevăr pentru funcția , care vă permite să spuneți câte soluții are sistemul și care sunt mulțimile care dau soluții.

În unele sarcini ale examenului de stat unificat privind găsirea de soluții la un sistem de ecuații logice, numărul de variabile ajunge la valoarea de 10. Apoi construirea unui tabel de adevăr devine o sarcină aproape de nerezolvat. Rezolvarea problemei necesită o abordare diferită. Pentru un sistem arbitrar de ecuații, nu există nicio modalitate generală, alta decât enumerarea, care să permită rezolvarea unor astfel de probleme.

În problemele propuse în examen, soluția se bazează de obicei pe luarea în considerare a specificului sistemului de ecuații. Repet, cu excepția enumerarii tuturor variantelor unui set de variabile, nu există o modalitate generală de a rezolva problema. Soluția trebuie construită pe baza specificului sistemului. Este adesea util să se efectueze o simplificare preliminară a unui sistem de ecuații folosind legile logice cunoscute. O altă tehnică utilă pentru rezolvarea acestei probleme este următoarea. Nu ne interesează toate mulțimile, ci doar acelea pe care funcția are valoarea 1. În loc să construim un tabel de adevăr complet, vom construi analogul său - un arbore de decizie binar. Fiecare ramură a acestui arbore corespunde unei soluții și specifică mulțimea pe care funcția are valoarea 1. Numărul de ramuri din arborele de decizie coincide cu numărul de soluții ale sistemului de ecuații.

Ce este un arbore de decizie binar și cum este construit, voi explica cu exemple de mai multe sarcini.

Problema 18

Câte seturi diferite de valori ale variabilelor booleene x1, x2, x3, x4, x5, y1, y2, y3, y4, y5 există care satisfac un sistem de două ecuații?

Răspuns: Sistemul are 36 de soluții diferite.

Rezolvare: Sistemul de ecuații include două ecuații. Să găsim numărul de soluții pentru prima ecuație în funcție de 5 variabile - . Prima ecuație poate fi considerată la rândul său ca un sistem de 5 ecuații. După cum sa arătat, sistemul de ecuații reprezintă de fapt o conjuncție de funcții logice. Afirmația inversă este de asemenea adevărată - conjuncția condițiilor poate fi considerată ca un sistem de ecuații.

Să construim un arbore de decizie pentru implicația () - primul termen al conjuncției, care poate fi considerat ca prima ecuație. Iată cum arată imaginea grafică a acestui copac


Arborele este format din două niveluri în funcție de numărul de variabile din ecuație. Primul nivel descrie prima variabilă. Două ramuri ale acestui nivel reflectă valorile posibile ale acestei variabile - 1 și 0. La al doilea nivel, ramurile arborelui reflectă numai acele valori posibile ale variabilei pentru care ecuația ia valoarea adevărată. Deoarece ecuația definește o implicație, ramura pe care are valoarea 1 necesită ca pe acea ramură să aibă valoarea 1. Ramura pe care are valoarea 0 generează două ramuri cu valori egale cu 0 și 1. Arborele construit definește trei soluții, unde implicația ia valoarea 1. Pe fiecare ramură este scris setul corespunzător de valori ale variabilelor, care dă o soluție ecuației.

Aceste seturi sunt: ​​((1, 1), (0, 1), (0, 0))

Să continuăm construirea arborelui de decizie adăugând următoarea ecuație, următoarea implicație. Specificul sistemului nostru de ecuații este că fiecare nouă ecuație a sistemului utilizează o variabilă din ecuația anterioară, adăugând o nouă variabilă. Deoarece variabila are deja valori în arbore, atunci pe toate ramurile în care variabila are valoarea 1, variabila va avea și valoarea 1. Pentru astfel de ramuri, construcția arborelui continuă la nivelul următor, dar nu apar ramuri noi. Singura ramură în care variabila are valoarea 0 va da o ramură în două ramuri, unde variabila va obține valorile 0 și 1. Astfel, fiecare adăugare a unei noi ecuații, având în vedere specificitatea acesteia, adaugă o soluție. Prima ecuație originală:

are 6 solutii. Iată cum arată arborele de decizie complet pentru această ecuație:


A doua ecuație a sistemului nostru este similară cu prima:

Singura diferență este că ecuația folosește variabile Y. Această ecuație are și 6 soluții. Deoarece fiecare soluție variabilă poate fi combinată cu fiecare soluție variabilă, numărul total de soluții este de 36.

Rețineți că arborele de decizie construit oferă nu numai numărul de soluții (în funcție de numărul de ramuri), ci și soluțiile în sine, scrise pe fiecare ramură a arborelui.

Problema 19

Câte seturi diferite de valori ale variabilelor booleene x1, x2, x3, x4, x5, y1, y2, y3, y4, y5 există care îndeplinesc toate următoarele condiții?

Această sarcină este o modificare a sarcinii anterioare. Diferența este că se adaugă o altă ecuație care leagă variabilele X și Y.

Din ecuație rezultă că atunci când are valoarea 1 (există o astfel de soluție), atunci are valoarea 1. Astfel, există o mulțime pe care și are valorile 1. Când este egal cu 0, poate avea orice valoare, atât 0, cât și 1. Prin urmare, fiecare set cu egal cu 0 și există 5 astfel de mulțimi, corespunde tuturor celor 6 mulțimi cu variabile Y. Prin urmare, numărul total de soluții este 31.

Problema 20

Rezolvare: amintindu-ne echivalența de bază, scriem ecuația noastră ca:

Un lanț ciclic de implicații înseamnă că variabilele sunt identice, deci ecuația noastră este echivalentă cu:

Această ecuație are două soluții când toate sunt fie 1, fie 0.

Problema 21

Câte soluții are ecuația:

Soluție: La fel ca în problema 20, trecem de la implicații ciclice la identități prin rescrierea ecuației sub forma:

Să construim un arbore de decizie pentru această ecuație:


Problema 22

Câte soluții are următorul sistem de ecuații?

Utilizarea ecuațiilor este larg răspândită în viața noastră. Ele sunt folosite în multe calcule, construcția de structuri și chiar sport. Ecuațiile au fost folosite de om din cele mai vechi timpuri și de atunci utilizarea lor a crescut. În matematică, există anumite sarcini care sunt dedicate logicii propozițiilor. Pentru a rezolva acest tip de ecuație, trebuie să aveți o anumită cunoștințe: cunoașterea legilor logicii propoziționale, cunoașterea tabelelor de adevăr ale funcțiilor logice a 1 sau 2 variabile, metode de transformare a expresiilor logice. În plus, trebuie să cunoașteți următoarele proprietăți ale operațiilor logice: conjuncții, disjuncții, inversiuni, implicații și echivalențe.

Orice funcție logică din \ variabile - \ poate fi specificată printr-un tabel de adevăr.

Să rezolvăm câteva ecuații logice:

\[\rightharpoondown X1\vee X2=1 \]

\[\rightharpoondown X2\vee X3=1\]

\[\rightharpoondown X3\vee X4=1 \]

\[\rightharpoondown X9\vee X10=1\]

Să începem soluția cu \[X1\] și să stabilim ce valori poate lua această variabilă: 0 și 1. Apoi, luați în considerare fiecare dintre valorile de mai sus \u200b\u200și vedeți ce \[X2.\] poate fi in acest caz

După cum se poate vedea din tabel, ecuația noastră logică are 11 soluții.

Unde pot rezolva o ecuație logică online?

Puteți rezolva ecuația pe site-ul nostru https: // site-ul. Soluția online gratuită vă va permite să rezolvați o ecuație online de orice complexitate în câteva secunde. Tot ce trebuie să faceți este să vă introduceți datele în soluție. De asemenea, puteți viziona instrucțiunile video și puteți afla cum să rezolvați ecuația pe site-ul nostru. Și dacă aveți întrebări, le puteți adresa în grupul nostru Vkontakte http://vk.com/pocketteacher. Alătură-te grupului nostru, suntem mereu bucuroși să te ajutăm.

Atribuirea serviciului. Calculatorul online este conceput pentru construirea unui tabel de adevăr pentru o expresie logică.
Tabelul de adevăr - un tabel care conține toate combinațiile posibile de variabile de intrare și valorile lor de ieșire corespunzătoare.
Tabelul de adevăr conține 2n rânduri, unde n este numărul de variabile de intrare și n+m sunt coloane, unde m sunt variabilele de ieșire.

Instruire. Când introduceți de la tastatură, utilizați următoarele convenții:

expresie booleană:

Ieșirea tabelelor intermediare pentru tabelul de adevăr
Construirea unui SKNF
Construcția SDNF
Construcția polinomului Zhegalkin
Construcția hărții Veitch-Carnot
Minimizarea funcției booleene
De exemplu, expresia logică abc+ab~c+a~bc trebuie introdusă astfel: a*b*c+a*b=c+a=b*c
Pentru a introduce date sub forma unei diagrame logice, utilizați acest serviciu.

Reguli de intrare a funcției logice

  1. Utilizați semnul + în loc de v (disjuncție, SAU).
  2. Înainte de funcția logică, nu trebuie să specificați desemnarea funcției. De exemplu, în loc de F(x,y)=(x|y)=(x^y) ați tasta pur și simplu (x|y)=(x^y) .
  3. Suma maximă variabile este 10 .

Proiectarea și analiza circuitelor logice computerizate se realizează cu ajutorul unei secțiuni speciale de matematică - algebra logicii. În algebra logicii se pot distinge trei funcții logice principale: „NU” (negație), „ȘI” (conjuncție), „SAU” (disjuncție).
Pentru a crea orice dispozitiv logic, este necesar să se determine dependența fiecăreia dintre variabilele de ieșire de variabilele de intrare curente, o astfel de dependență se numește funcție de comutare sau o funcție a algebrei logice.
O funcție de algebră logică se numește complet definită dacă sunt date toate cele 2 n dintre valorile sale, unde n este numărul de variabile de ieșire.
Dacă nu toate valorile sunt definite, funcția se numește parțial definită.
Un dispozitiv este numit logic dacă starea lui este descrisă folosind o funcție a algebrei logicii.
Următoarele metode sunt utilizate pentru a reprezenta funcția algebră logică:
În formă algebrică, este posibil să construiți o diagramă a unui dispozitiv logic folosind elemente logice.


Figura 1 - Diagrama unui dispozitiv logic

Toate operațiile algebrei logicii sunt definite tabele de adevăr valorile. Tabelul de adevăr determină rezultatul efectuării unei operații pentru tot posibil x valorile logice ale afirmațiilor originale. Numărul de opțiuni care reflectă rezultatul aplicării operațiilor va depinde de numărul de instrucțiuni din expresia logică. Dacă numărul de afirmații din expresia logică este N, atunci tabelul de adevăr va conține 2 N rânduri, deoarece există 2 N combinații diferite de valori posibile ale argumentului.

Operațiunea NOT - negație logică (inversie)

Operația logică NU se aplică unui singur argument, care poate fi fie o expresie logică simplă, fie o expresie logică complexă. Rezultatul operației NU este următorul:
  • dacă expresia inițială este adevărată, atunci rezultatul negației sale va fi fals;
  • dacă expresia inițială este falsă, atunci rezultatul negației sale va fi adevărat.
Următoarele convenții NU sunt acceptate pentru operația de negație:
nu A, Â, nu A, ¬A, !A
Rezultatul operației de negație NU este determinat de următorul tabel de adevăr:
Anu A
0 1
1 0

Rezultatul operației de negație este adevărat atunci când afirmația inițială este falsă și invers.

Operația SAU - adunare logică (disjuncție, unire)

Operația logic OR îndeplinește funcția de a combina două instrucțiuni, care pot fi fie o expresie logică simplă, fie o expresie logică complexă. Declarațiile care sunt inițiale pentru o operație logică se numesc argumente. Rezultatul operației SAU este o expresie care va fi adevărată dacă și numai dacă cel puțin una dintre expresiile originale este adevărată.
Denumiri utilizate: A sau B, A V B, A sau B, A||B.
Rezultatul operației OR este determinat de următorul tabel de adevăr:
Rezultatul operației SAU este adevărat atunci când A este adevărat, sau B este adevărat, sau ambele A și B sunt adevărate și false când A și B sunt false.

Operația ȘI - înmulțire logică (conjuncție)

Operația logică AND îndeplinește funcția de intersecție a două afirmații (argumente), care poate fi fie o expresie logică simplă, fie o expresie logică complexă. Rezultatul operației AND este o expresie care este adevărată dacă și numai dacă ambele expresii originale sunt adevărate.
Simboluri utilizate: A și B, A Λ B, A și B, A și B.
Rezultatul operației AND este determinat de următorul tabel de adevăr:
ABA și B
0 0 0
0 1 0
1 0 0
1 1 1

Rezultatul operației AND este adevărat dacă și numai dacă afirmațiile A și B sunt atât adevărate, cât și false în toate celelalte cazuri.

Operațiunea „IF-THEN” - consecință logică (implicație)

Această operație conectează două expresii logice simple, dintre care prima este o condiție, iar a doua este o consecință a acestei condiții.
Denumiri aplicate:
dacă A, atunci B; A atrage B; dacă A atunci B; A → B.
Tabelul de adevăr:
ABA→B
0 0 1
0 1 1
1 0 0
1 1 1

Rezultatul operației de consecință (implicație) este fals numai atunci când premisa A este adevărată și concluzia B (consecința) este falsă.

Operația „A dacă și numai dacă B” (echivalență, echivalență)

Denumirea aplicabilă: A ↔ B, A ~ B.
Tabelul de adevăr:
ABA↔B
0 0 1
0 1 0
1 0 0
1 1 1

Operație de adăugare Modulo 2 (XOR, exclusiv sau, disjuncție strictă)

Notația folosită: A XOR B, A ⊕ B.
Tabelul de adevăr:
ABA⊕B
0 0 0
0 1 1
1 0 1
1 1 0

Rezultatul operației de echivalență este adevărat numai dacă atât A cât și B sunt ambele adevărate sau ambele false.

Precedenta operatiilor logice

  • Acțiunile între paranteze
  • Inversiunea
  • Conjuncție (&)
  • Disjuncție (V), SAU exclusiv (XOR), sumă modulo 2
  • Implicație (→)
  • Echivalență (↔)

Forma normală disjunctivă perfectă

Forma normală disjunctivă perfectă a unei formule(SDNF) este o formulă echivalentă cu aceasta, care este o disjuncție de conjuncții elementare, care are următoarele proprietăți:
  1. Fiecare termen logic al formulei conține toate variabilele incluse în funcția F(x 1 ,x 2 ,...x n).
  2. Toți termenii logici ai formulei sunt diferiți.
  3. Niciun termen logic nu conține o variabilă și negația acesteia.
  4. Niciun termen logic dintr-o formulă nu conține aceeași variabilă de două ori.
SDNF poate fi obținut fie folosind tabele de adevăr, fie folosind transformări echivalente.
Pentru fiecare funcție, SDNF și SKNF sunt definite în mod unic până la o permutare.

Forma normală conjunctivă perfectă

Forma normală conjunctivă perfectă a unei formule (SKNF) este o formulă echivalentă cu aceasta, care este o conjuncție de disjuncții elementare care satisface următoarele proprietăți:
  1. Toate disjuncțiile elementare conțin toate variabilele incluse în funcția F(x 1 ,x 2 ,...x n).
  2. Toate disjuncțiile elementare sunt diferite.
  3. Fiecare disjuncție elementară conține o variabilă o dată.
  4. Nicio disjuncție elementară nu conține o variabilă și negația acesteia.