Paglutas ng mga lohikal na equation. Priyoridad ng mga lohikal na operasyon

Hayaang maging isang lohikal na function ng n variable. Ang lohikal na equation ay ganito ang hitsura:

Ang pare-parehong C ay may halagang 1 o 0.

Ang isang lohikal na equation ay maaaring magkaroon ng mula 0 hanggang sa iba't ibang solusyon. Kung ang C ay katumbas ng 1, ang mga solusyon ay ang lahat ng mga hanay ng mga variable mula sa talahanayan ng katotohanan kung saan kinukuha ng function F ang halagang totoo (1). Ang natitirang mga set ay mga solusyon ng equation na may C katumbas ng zero. Maaari mong palaging isaalang-alang ang mga equation lamang ng form:

Sa katunayan, hayaan ang equation na ibigay:

Sa kasong ito, maaari tayong pumunta sa katumbas na equation:

Isaalang-alang ang isang sistema ng k logical equation:

Ang solusyon sa isang sistema ay isang hanay ng mga variable kung saan ang lahat ng mga equation ng system ay nasiyahan. Sa mga tuntunin ng mga lohikal na pag-andar, upang makakuha ng isang solusyon sa isang sistema ng mga lohikal na equation, ang isa ay dapat makahanap ng isang set kung saan ang lohikal na function na Ф ay totoo, na kumakatawan sa kumbinasyon ng mga orihinal na function:

Kung ang bilang ng mga variable ay maliit, halimbawa, mas mababa sa 5, kung gayon hindi mahirap na bumuo ng isang talahanayan ng katotohanan para sa function, na nagpapahintulot sa amin na sabihin kung gaano karaming mga solusyon ang mayroon ang system at kung ano ang mga hanay na nagbibigay ng mga solusyon.

Sa ilang mga problema sa PAGGAMIT sa paghahanap ng mga solusyon sa isang sistema ng mga lohikal na equation, ang bilang ng mga variable ay umabot sa 10. Pagkatapos ay ang pagbuo ng talahanayan ng katotohanan ay nagiging halos imposibleng gawain. Ang paglutas ng problema ay nangangailangan ng ibang paraan. Para sa isang arbitrary na sistema ng mga equation, walang pangkalahatang paraan maliban sa enumeration na nagpapahintulot sa paglutas ng mga naturang problema.

Sa mga problemang iminungkahi sa pagsusulit, ang solusyon ay karaniwang batay sa pagsasaalang-alang sa mga detalye ng sistema ng mga equation. Uulitin ko, bukod sa pagsubok sa lahat ng mga opsyon para sa isang hanay ng mga variable, walang pangkalahatang paraan upang malutas ang problema. Ang solusyon ay dapat na binuo batay sa mga detalye ng system. Kadalasan ay kapaki-pakinabang na magsagawa ng isang paunang pagpapasimple ng isang sistema ng mga equation gamit ang mga kilalang batas ng lohika. Ang isa pang kapaki-pakinabang na pamamaraan para sa paglutas ng problemang ito ay ang mga sumusunod. Hindi kami interesado sa lahat ng hanay, ngunit ang mga kung saan ang function ay may halaga 1. Sa halip na bumuo ng isang kumpletong talahanayan ng katotohanan, bubuo kami ng analogue nito - isang binary decision tree. Ang bawat sangay ng punong ito ay tumutugma sa isang solusyon at tumutukoy sa isang set kung saan ang function ay may halaga na 1. Ang bilang ng mga sanga sa puno ng desisyon ay tumutugma sa bilang ng mga solusyon sa sistema ng mga equation.

Ipapaliwanag ko kung ano ang binary decision tree at kung paano ito binuo gamit ang mga halimbawa ng ilang problema.

Suliranin 18

Ilang iba't ibang hanay ng mga halaga ng mga lohikal na variable x1, x2, x3, x4, x5, y1, y2, y3, y4, y5 ang naroroon na nakakatugon sa sistema ng dalawang equation?

Sagot: Ang sistema ay may 36 na magkakaibang solusyon.

Solusyon: Kasama sa sistema ng mga equation ang dalawang equation. Hanapin natin ang bilang ng mga solusyon para sa unang equation, depende sa 5 variable - . Ang unang equation ay maaari namang ituring bilang isang sistema ng 5 equation. Tulad ng ipinakita, ang sistema ng mga equation ay aktwal na kumakatawan sa pagsasama ng mga lohikal na function. Ang kabaligtaran na pahayag ay totoo rin - ang isang kumbinasyon ng mga kondisyon ay maaaring isaalang-alang bilang isang sistema ng mga equation.

Bumuo tayo ng decision tree para sa implikasyon () - ang unang termino ng conjunction, na maaaring ituring na unang equation. Ganito ang hitsura ng isang graphical na representasyon ng punong ito


Ang puno ay binubuo ng dalawang antas ayon sa bilang ng mga variable sa equation. Inilalarawan ng unang antas ang unang variable. Ang dalawang sangay ng antas na ito ay sumasalamin sa mga posibleng halaga ng variable na ito - 1 at 0. Sa pangalawang antas, ang mga sanga ng puno ay sumasalamin lamang sa mga posibleng halaga ng variable kung saan ang equation ay nagsusuri sa totoo. Dahil ang equation ay tumutukoy sa isang implikasyon, ang isang sangay kung saan may halaga 1 ay nangangailangan na sa sangay na ito ay may isang halaga ng 1. Ang isang sangay kung saan ang halaga ay 0 ay bumubuo ng dalawang sangay na may mga halaga na katumbas ng 0 at 1. Ang binuo Tinutukoy ng puno ang tatlong solusyon, kung saan ang implikasyon ay tumatagal ng halaga 1. Sa bawat sangay, isang kaukulang hanay ng mga variable na halaga ay nakasulat, na nagbibigay ng solusyon sa equation.

Ang mga set na ito ay: ((1, 1), (0, 1), (0, 0))

Ipagpatuloy natin ang pagbuo ng puno ng desisyon sa pamamagitan ng pagdaragdag ng sumusunod na equation, ang sumusunod na implikasyon. Ang pagiging tiyak ng aming sistema ng mga equation ay ang bawat bagong equation ng system ay gumagamit ng isang variable mula sa nakaraang equation, pagdaragdag ng isang bagong variable. Dahil ang variable ay mayroon nang mga halaga sa puno, pagkatapos ay sa lahat ng mga sanga kung saan ang variable ay may halaga na 1, ang variable ay magkakaroon din ng isang halaga ng 1. Para sa mga naturang sanga, ang pagtatayo ng puno ay nagpapatuloy sa susunod na antas, pero walang lumalabas na bagong branch. Ang isang solong sangay kung saan ang isang variable ay may halaga na 0 ay magsasanga sa dalawang sangay kung saan ang variable ay makakatanggap ng mga halaga ng 0 at 1. Kaya, ang bawat pagdaragdag ng isang bagong equation, na ibinigay sa pagiging tiyak nito, ay nagdaragdag ng isang solusyon. Orihinal na unang equation:

may 6 na solusyon. Narito kung ano ang hitsura ng kumpletong puno ng desisyon para sa equation na ito:


Ang pangalawang equation ng aming system ay katulad ng una:

Ang pagkakaiba lamang ay ang equation ay gumagamit ng mga variable na Y. Ang equation na ito ay mayroon ding 6 na solusyon. Dahil ang bawat variable na solusyon ay maaaring pagsamahin sa bawat variable na solusyon, ang kabuuang bilang ng mga solusyon ay 36.

Mangyaring tandaan na ang itinayong puno ng desisyon ay nagbibigay hindi lamang ng bilang ng mga solusyon (ayon sa bilang ng mga sanga), kundi pati na rin ang mga solusyon mismo na nakasulat sa bawat sangay ng puno.

Suliranin 19

Ilang iba't ibang hanay ng mga halaga ng mga lohikal na variable x1, x2, x3, x4, x5, y1, y2, y3, y4, y5 ang naroroon na nakakatugon sa lahat ng mga kundisyon na nakalista sa ibaba?

Ang gawaing ito ay pagbabago ng nakaraang gawain. Ang pagkakaiba ay ang isa pang equation ay idinagdag na nag-uugnay sa mga variable na X at Y.

Ito ay sumusunod mula sa equation na kapag may isang halaga ng 1 (isang ganoong solusyon ay umiiral), pagkatapos ito ay may isang halaga ng 1. Kaya, mayroong isang set kung saan at may mga halaga ng 1. Kapag katumbas ng 0, maaari itong ay may anumang halaga, parehong 0 at at 1. Samakatuwid, ang bawat set na may , katumbas ng 0, at mayroong 5 ganoong set, ay tumutugma sa lahat ng 6 na set na may mga variable na Y. Samakatuwid, ang kabuuang bilang ng mga solusyon ay 31.

Suliranin 20

Solusyon: Ang pag-alala sa mga pangunahing equivalence, isinusulat namin ang aming equation bilang:

Ang cyclic chain of implications ay nangangahulugan na ang mga variable ay magkapareho, kaya ang aming equation ay katumbas ng equation:

Ang equation na ito ay may dalawang solusyon kapag ang lahat ay alinman sa 1 o 0.

Suliranin 21

Gaano karaming mga solusyon ang mayroon ang equation:

Solusyon: Tulad ng sa problema 20, lumilipat tayo mula sa mga paikot na implikasyon patungo sa mga pagkakakilanlan, na muling isinusulat ang equation sa anyo:

Bumuo tayo ng decision tree para sa equation na ito:


Suliranin 22

Ilang solusyon mayroon ang sumusunod na sistema ng mga equation?

Sa pagtatapos ng taon, lumabas na isa lamang sa tatlong pagpapalagay ang totoo. Aling mga dibisyon ang kumita sa pagtatapos ng taon?

Solusyon. Isulat natin ang mga pagpapalagay mula sa mga kondisyon ng problema sa anyo ng mga lohikal na pahayag: "Ang pagtanggap ng tubo sa pamamagitan ng dibisyon B ay hindi isang kinakailangang kondisyon para makakuha ng

tubo sa pamamagitan ng dibisyon A ":F 1 (A, B, C) = A → B

“Ang pagkuha ng tubo mula sa hindi bababa sa isang dibisyon B at C ay hindi sapat para sa dibisyon A upang kumita”: F 2 (A, B, C) = (B + C) → A

“Hindi magkakasabay na kikita ang dibisyon A at B”: F 3 (A, B, C) = A B

Mula sa kondisyon ay alam na isa lamang sa tatlong pagpapalagay ang totoo. Nangangahulugan ito na dapat nating hanapin kung alin sa mga sumusunod na tatlong lohikal na expression ang hindi magkaparehong mali:

1) F 1F 2F 3

2) F 1F 2F 3

3) F 1F 2F 3

1) (A→ B) ((B+ C) → A) (A↔ B) = A B(B C+ A) (A B+ A B) = 0

2) (A→ B) ((B+ C) → A) (A↔ B) = (A+ B) (A B+ A C) (A B+ A B) = A B C

3) (A→ B) ((B+ C) → A) (A B) = (A+ B) (B C+ A) (A B+ A B) = 0

Dahil dito, sa pagtatapos ng taon, ang pangalawang palagay ay naging totoo, at ang una at pangatlo ay mali.

A=0

F1 F2 F3 = A B C= 1

kung at kung B = 0 lamang.

C=1

Samakatuwid, ang division C ay makakatanggap ng tubo, ngunit ang dibisyon A at B ay hindi makakatanggap ng tubo.

Paglutas ng Logic Equation

Sa mga teksto ng sentralisadong pagsubok ng estado mayroong isang gawain (A8), na humihiling na hanapin ang ugat ng isang lohikal na equation. Tingnan natin ang mga paraan upang malutas ang mga naturang gawain gamit ang isang halimbawa.

Hanapin ang ugat ng logical equation: (A + B)(X AB) = B + X → A.

Ang unang solusyon ay ang pagbuo ng talahanayan ng katotohanan. Bumuo tayo ng mga talahanayan ng katotohanan para sa kanan at kaliwang bahagi ng equation at tingnan kung ano ang X ang mga halaga sa mga huling hanay ng mga talahanayang ito ay nagtutugma.

F1 (A, B, X) = (A+ B)(X AB)

A+B

(A+ B)(X AB)

F 1 (A ,B ,X )

F2 (A, B, X) = B+ X→ A

X → A

F 2 (A ,B ,X )

X → A

X → A

Ihambing natin ang mga resultang talahanayan ng katotohanan at piliin ang mga hilera kung saan ang mga halaga ng F 1 (A, B, X) at F 2 (A, B, X) ay nag-tutugma.

F 1 (A ,B ,X )

F 2 (A ,B ,X )

Ang mga napiling row lang ang isulat natin, iiwan lang ang mga column ng argument. Tingnan natin ang variable X bilang isang function ng A at B.

Malinaw, X = B → A.

Ang pangalawang solusyon ay palitan ang equal sign sa equation ng katumbas na sign, at pagkatapos ay gawing simple ang resultang logical equation.

Upang mapadali ang karagdagang gawain, pasimplehin muna natin ang kanan at kaliwang bahagi ng lohikal na equation at hanapin ang kanilang mga negasyon:

F1 = (A+ B)(X AB) = A+ B+ (X↔ AB) = A B+ X A B+ X A+ X B

F1 = (A+ B)(X AB) = (A+ B)(X A+ X B+ X A B) = X A B+ X A B+ X A B

F2 = B+ X→ A= B(X→ A) = B(X+ A) = X B+ A B F2 = B+ X→ A= B+ X+ A= B+ X A

Palitan natin ang equal sign sa ating logical equation ng equivalence sign:

F1 ↔ F2 = F1 F2 + F1 F2 = (A B+ X A B+ X A+ X B) (X B+ A B) +

+ (X A B+ X A B+ X A B) (B+ X A) =

= (X A B+ X B+ X A B) + (X A B+ X A B) =

Ayusin natin ang mga lohikal na termino ng expression na ito, na alisin ang mga salik na X at X sa mga bracket.

X(A B) + X(B+ AB) = X(A B) + X(B+ A) =

Ipahiwatig natin ang T = A B , kung gayon

X T+ X T= X↔ T.

Samakatuwid, para magkaroon ng solusyon ang isang lohikal na equation: X = A B = B + A = B → A.

Mga elemento ng lohika ng computer. Konstruksyon ng mga functional diagram

Sa pag-unlad ng teknolohiya ng computer, ang lohika ng matematika ay naging malapit na nauugnay sa mga isyu ng disenyo at programming ng teknolohiya ng computer. Ang algebra ng lohika ay natagpuan ang malawak na aplikasyon sa simula sa pag-unlad contact ng relay mga scheme Ang unang pangunahing pananaliksik na nakakuha ng atensyon ng mga inhinyero na kasangkot sa disenyo ng computer sa posibilidad ng pagsusuri ng mga de-koryenteng circuit gamit ang Boolean algebra ay inilathala noong Disyembre 1938 ng American Claude Shannon, "Symbolic Analysis of Ladder Circuits." Pagkatapos ng artikulong ito, hindi magagawa ang disenyo ng computer nang walang paggamit ng Boolean algebra.

Elemento ng lohika ay isang circuit na nagpapatupad ng mga lohikal na operasyon ng disjunction, conjunction at inversion. Isaalang-alang natin ang pagpapatupad ng mga lohikal na elemento sa pamamagitan ng mga de-koryenteng relay-contact circuit, na pamilyar sa iyo mula sa kursong pisika ng paaralan.

Serial na koneksyon ng mga contact

Parallel na koneksyon ng mga contact

Magtipon tayo ng isang talahanayan ng mga dependences ng estado ng mga circuit sa lahat ng posibleng estado ng mga contact. Ipakilala natin ang mga sumusunod na notasyon: 1 - ang contact ay sarado, mayroong kasalukuyang sa circuit; 0 - bukas ang contact, walang kasalukuyang sa circuit.

Kondisyon ng circuit

Kondisyon ng circuit na may parallel

serial connection

koneksyon

Tulad ng nakikita mo, ang isang circuit na may serial connection ay tumutugma sa lohikal na operasyon ng conjunction, dahil ang kasalukuyang sa circuit ay lilitaw lamang kapag ang mga contact A at B ay sabay na sarado. Ang isang circuit na may parallel na koneksyon ay tumutugma sa lohikal na operasyon ng disjunction, dahil walang kasalukuyang sa circuit lamang sa sandaling ang parehong mga contact ay bukas.

Ang lohikal na operasyon ng pagbabaligtad ay ipinatupad sa pamamagitan ng contact circuit ng isang electromagnetic relay, ang prinsipyo ng kung saan ay pinag-aralan sa isang kurso sa pisika ng paaralan. Ang contact x ay bukas kapag x ay sarado at vice versa.

Ang paggamit ng mga elemento ng contact ng relay para sa pagbuo ng mga lohikal na circuit ng mga computer ay hindi nabigyang-katwiran ang sarili dahil sa mababang pagiging maaasahan, malalaking sukat, mataas na pagkonsumo ng kuryente at mababang pagganap. Ang pagdating ng mga elektronikong aparato (vacuum at semiconductor) ay lumikha ng posibilidad ng pagbuo ng mga elemento ng lohika na may bilis na 1 milyong switching bawat segundo at mas mataas. Ang mga elemento ng logic na semiconductor ay gumagana sa switch mode na katulad ng isang electromagnetic relay. Ang buong teorya na ipinakita para sa mga circuit ng contact ay inilipat sa mga elemento ng semiconductor. Ang mga elemento ng lohika sa semiconductors ay nailalarawan hindi sa pamamagitan ng estado ng mga contact, ngunit sa pamamagitan ng pagkakaroon ng mga signal sa input at output.

Isaalang-alang natin ang mga lohikal na elemento na nagpapatupad ng mga pangunahing lohikal na operasyon:

Inverter - nagpapatupad ng operasyon ng negation o inversion. U

Ang inverter ay may isang input at isang output. Lumilitaw ang output signal

kapag wala sa input, at vice versa.

Conjunctor -

X1 X2 ... Xn

nagpapatupad ng operasyong pang-ugnay.

Sa conjunctor's

isang labasan at hindi bababa sa dalawang pasukan. Naka-on ang signal

lilitaw sa output kung at kung lamang

ang lahat ng mga input ay sinenyasan.

X2 + ... Xn

Disjunctor - nagpapatupad ng disjunction operation. U

ang disjunctor ay may isang labasan at hindi bababa sa dalawa

Ang output signal ay hindi lilitaw kung at kung lamang

kapag walang signal na ibinibigay sa lahat ng input.

Bumuo

functional

F(X, Y, Z) = X(Y+ Z)

X+Z

diagram na naaayon sa function:

&F(X, Y, Z)

Paglutas ng mga problema gamit ang conjunctive normal

At disjunctive-normal mga form

SA Ang mga logic problem book ay kadalasang naglalaman ng mga karaniwang problema kung saan kailangan mong magsulat ng isang function na nagpapatupad ladder diagram, pasimplehin ito at bumuo ng talahanayan ng katotohanan para sa function na ito. Paano malutas ang kabaligtaran na problema? Dahil sa isang arbitrary na talahanayan ng katotohanan, kailangan mong bumuo ng isang functional o relay diagram. Haharapin natin ang isyung ito ngayon.

Anumang lohikal na algebra function ay maaaring katawanin ng isang kumbinasyon ng tatlong mga operasyon: conjunction, disjunction at inversion. Alamin natin kung paano ito ginagawa. Upang gawin ito, isulat natin ang ilang mga kahulugan.

Ang minterm ay isang function na nabuo sa pamamagitan ng conjunction ng isang tiyak na bilang ng mga variable o ang kanilang mga negations. Kinukuha ng Minterm ang value 1 para sa isa lamang sa lahat ng posibleng set

argumento, at ang halaga ay 0 para sa lahat ng iba pa. Halimbawa: x 1 x 2 x 3 x 4 .

Ang maxterm ay isang function na nabuo sa pamamagitan ng disjunction ng isang tiyak na bilang ng mga variable o ang kanilang mga negasyon. Kinukuha ng Maxterm ang value na 0 sa isa sa mga posibleng set, at 1 sa lahat ng iba pa.

Halimbawa: x 1 + x 2 + x 3.

Function sa disjunctive normal na anyo(DNF) ay ang lohikal na kabuuan ng minterms.

Halimbawa: x 1x 2+ x 1x 2+ x 1x 2x 3.

Conjunctive normal na anyo(CNF) ay isang lohikal na produkto ng elementarya na disjunctions (maxterms).

Halimbawa: (x 1+ x 2+ x 3) (x 1+ x 2) .

Perpektong disjunctive normal na anyo ay tinatawag na DNF, sa bawat minterm kung saan ang lahat ng mga variable o ang kanilang mga negasyon ay naroroon.

Halimbawa: x 1x 2x 3+ x 1x 2x 3+ x 1x 2x 3

Perpektong conjunctive normal na anyo ay tinatawag na CNF, sa bawat maxterm kung saan ang lahat ng mga variable o ang kanilang mga negasyon ay naroroon.

Halimbawa: (x 1+ x 2+ x 3) (x 1+ x 2+ x 3)

Pagsusulat ng isang lohikal na function mula sa isang talahanayan

Ang anumang lohikal na function ay maaaring ipahayag bilang SDNF o SCNF. Bilang halimbawa, isaalang-alang ang function f na ipinakita sa talahanayan.

f(x1 , x2 , x3 )

Ang mga function na G0, G1, G4, G5, G7 ay minterms (tingnan ang kahulugan). Ang bawat isa sa mga function na ito ay produkto ng tatlong mga variable o ang kanilang mga inverses at kumukuha ng halaga 1 sa isang sitwasyon lamang. Makikita na upang makakuha ng 1 sa halaga ng function na f, kailangan ng isang minterm. Dahil dito, ang bilang ng mga minterm na bumubuo sa SDNF ng function na ito ay katumbas ng bilang ng mga unit sa value ng function: f= G0+G1+G4+G5+G7. Kaya, ang SDNF ay may anyo:

f (x 1, x 2, x 3) = x 1x 2x 3+ x 1x 2x 3+ x 1x 2x 3+ x 1x 2x 3+ x 1x 2x 3.

Katulad nito, maaari kang bumuo ng SKNF. Ang bilang ng mga kadahilanan ay katumbas ng bilang ng mga zero sa mga halaga ng function:

f (x 1, x 2, x 3) = (x 1+ x 2+ x 3) (x 1+ x 2+ x 3) (x 1+ x 2+ x 3) .

Kaya, ang anumang lohikal na function na ibinigay sa anyo ng isang talahanayan ay maaaring isulat bilang isang formula.

Algorithm para sa pagbuo ng SDNF gamit ang isang talahanayan ng katotohanan

Ang talahanayan ng katotohanan ng ilang function ay ibinigay. Upang bumuo ng isang SDNF, dapat mong gawin ang sumusunod na pagkakasunud-sunod ng mga hakbang:

1. Piliin ang lahat ng row ng talahanayan kung saan kinukuha ng function ang value 1.

2. Para sa bawat ganoong linya, magtalaga ng isang conjunction ng lahat ng mga argumento o ang kanilang mga inversions (minterm). Sa kasong ito, ang argument na kumukuha ng value na 0 ay kasama sa minterm na may negation, at ang value 1 ay kasama nang walang negation.

3. Sa wakas, binubuo namin ang disjunction ng lahat ng nakuha na minterms. Ang bilang ng mga minterm ay dapat tumugma sa bilang ng mga yunit ng logical function.

Algorithm para sa pagbuo ng SCNF gamit ang isang talahanayan ng katotohanan

Ang talahanayan ng katotohanan ng ilang function ay ibinigay. Upang bumuo ng SKNF, kailangan mong gawin ang sumusunod na pagkakasunud-sunod ng mga hakbang:

1. Piliin ang lahat ng mga hilera ng talahanayan kung saan kinukuha ng function ang halagang 0.

2. Para sa bawat ganoong linya, magtalaga ng disjunction ng lahat ng argumento o ang kanilang mga inversion (maxterm). Sa kasong ito, ang isang argument na kumukuha ng value 1 ay kasama sa maxterm na may negation, at ang value 1 ay kasama nang walang negation.

3. Sa wakas, binubuo namin ang conjunction ng lahat ng nakuhang maxterms. Dapat tumugma ang bilang ng mga maxterm sa bilang ng mga zero ng logical function.

Kung sumasang-ayon kami mula sa dalawang anyo (SDNF o SKNF) na bigyan ng kagustuhan ang isa na naglalaman ng mas kaunting mga titik, kung gayon ang SDNF ay mas mainam kung mayroong mas kaunti sa mga halaga ng function ng talahanayan ng katotohanan, SKNF - kung mayroong mas kaunting mga zero.

Halimbawa. Ang talahanayan ng katotohanan ng isang lohikal na function ng tatlong mga variable ay ibinigay. Bumuo ng lohikal na formula na nagpapatupad ng function na ito.

F(A, B, C)

Piliin natin ang mga row sa truth table na ito kung saan ang value ng function ay 0.

F(A, B, C) = (A+ B+ C) (A+ B+ C)

Suriin natin ang derived function sa pamamagitan ng paggawa ng truth table.

Sa pamamagitan ng paghahambing ng una at huling mga talahanayan ng katotohanan, maaari nating tapusin na ang lohikal na pag-andar ay itinayo nang tama.

Pagtugon sa suliranin

1. Tatlong guro ang pumili ng mga problema para sa Olympiad. Mayroong ilang mga gawain na mapagpipilian. Para sa bawat gawain, ang bawat guro ay nagpapahayag ng kanyang opinyon: isang madaling (0) o mahirap (1) na gawain. Ang isang gawain ay kasama sa gawain sa Olympiad kung ang hindi bababa sa dalawang guro ay markahan ito bilang mahirap, ngunit kung ang lahat ng tatlong guro ay itinuturing na mahirap, kung gayon ang ganoong gawain ay hindi kasama sa gawain ng Olympiad bilang masyadong mahirap. Gumawa ng lohikal na diagram ng isang device na maglalabas ng 1 kung ang gawain ay kasama sa Olympiad na gawain, at 0 kung hindi ito kasama.

Bumuo tayo ng talahanayan ng katotohanan para sa nais na function. Mayroon kaming tatlong input variable (tatlong guro). Samakatuwid, ang kinakailangang function ay magiging function ng tatlong variable.

Sa pagsusuri sa kondisyon ng problema, nakuha namin ang sumusunod na talahanayan ng katotohanan:

Nagtatayo kami ng SDNF. F(A, B, C) = ABC+ ABC+ ABC

Ngayon ay bumuo kami ng isang lohikal na diagram ng function na ito.

B&1F(A,B,C)

2. City Olympiad sa pangunahing kurso ng computer science, 2007.Bumuo ng electrical circuit diagram para sa pasukan ng isang tatlong palapag na bahay upang ang switch sa anumang palapag ay maaaring magbukas o magpatay ng mga ilaw sa buong bahay.

Kaya, mayroon kaming tatlong switch na dapat naming gamitin upang i-on at patayin ang ilaw. Ang bawat switch ay may dalawang estado: pataas (0) at pababa (1). Ipagpalagay natin na kung ang lahat ng tatlong switch ay nasa posisyon 0, ang mga ilaw sa pasukan ay nakapatay. Pagkatapos, kapag inilipat mo ang alinman sa tatlong switch sa posisyon 1, dapat lumiwanag ang ilaw sa pasukan. Malinaw, kapag inilipat mo ang anumang iba pang switch sa posisyon 1, ang ilaw sa pasukan ay papatayin. Kung ang ikatlong switch ay inilipat sa posisyon 1, ang ilaw sa pasukan ay bubukas. Bumubuo kami ng talahanayan ng katotohanan.

Pagkatapos, F(A, B, C) = ABC+ ABC+ ABC+ ABC.

3. Baguhin ang kondisyon

mga halaga ng lohikal na function

F(A, B, C) = C→

A+B

ang pagbabago ng mga argumento B at C sa parehong oras ay katumbas ng:

A → (B C)

(B C) → A

A(B C)

4) (B C) → A

A → (B C)

Tandaan. Upang matagumpay na malutas ang problemang ito, tandaan ang mga sumusunod na lohikal na formula:

x → y= x+ y x y= x y+ x y

x ↔ y= x y+ x y

Binigyan tayo ng lohikal na function ng tatlong variable F 1 (A, B, C) = C → A + B = C + A B.

Palitan natin ang mga variable B at C nang sabay-sabay: F ​​2 (A, B, C) = F 1 (A, B, C) = C + A B. Bumuo tayo ng mga talahanayan ng katotohanan para sa dalawang function na ito:

Suriin natin ang resultang talahanayan. Sa walong hanay ng talahanayan, sa dalawa lamang (ika-2 at ika-3) ang function ay hindi nagbabago ng halaga nito. Pansinin na sa mga linyang ito, hindi binabaligtad ng variable A ang halaga nito, ngunit ginagawa ng mga variable B at C.

Bumubuo kami ng mga function ng SKNF gamit ang mga linyang ito:

F3 (A, B, C) = (A+ B+ C) (A+ B C) = A+ AB+ AC+ AB+ BC+ AC+ B C= .

A+ (B↔ C) = A+ B C= (B C) → A

Samakatuwid, ang nais na sagot ay 4.

4. Kundisyon para sa pagbabago ng halaga ng isang lohikal na function F (A, B, C) = C + AB habang sabay na binabago ang mga argumento A at B ay katumbas ng:

1) C+ (A B)

C+(A B)

C(A B)

4) C(A B)

C → (A B)

F 1 (A ,B ,C )=

C+AB

F 2 (A ,B ,C )= F 1 (

C )= A

Bumubuo kami ng talahanayan ng katotohanan.

Suriin natin ang resultang talahanayan. Sa walong hilera ng talahanayan, sa dalawa lamang (ika-1 at ika-7) binabago ng function ang halaga nito. Pakitandaan na sa mga linyang ito, hindi binabago ng variable C ang halaga nito, ngunit ginagawa ng mga variable A at B.

Bumubuo kami ng mga function ng SDNF gamit ang mga linyang ito:

F3 (A, B, C) = A B C+ A B C= C(A B+ A B) = C(A↔ B) = C+ (A B)

Samakatuwid, ang kinakailangang sagot ay 2.

Mga sanggunian

1. Shapiro S.I. Paglutas ng mga lohikal at problema sa paglalaro(lohikal at sikolohikal na pag-aaral). – M.: Radyo at Komunikasyon, 1984. – 152 p.

2. Sholomov L.A. Mga batayan ng teorya ng discrete logical at computing device. – M.: Agham. Ch. ed. pisikal - banig. lit., 1980. - 400 p.

3. Pukhalsky G.I., Novoseltseva T.Ya. Disenyo ng mga discrete device sa integrated circuits: Handbook. – M.: Radyo at Komunikasyon, 1990.

Mga pamamaraan para sa paglutas ng mga sistema ng mga lohikal na equation

Kirgizova E.V., Nemkova A.E.

Lesosibirsk Pedagogical Institute –

sangay ng Siberian Federal University, Russia

Ang kakayahang mag-isip nang tuluy-tuloy, mangatuwiran nang nakakumbinsi, bumuo ng mga hypotheses, at pabulaanan ang mga negatibong konklusyon ay hindi nag-iisa; ang kasanayang ito ay binuo ng agham ng lohika. Ang lohika ay isang agham na nag-aaral ng mga pamamaraan para sa pagtatatag ng katotohanan o kamalian ng ilang mga pahayag batay sa katotohanan o kamalian ng iba pang mga pahayag.

Ang pag-master ng mga pangunahing kaalaman ng agham na ito ay imposible nang walang paglutas ng mga lohikal na problema. Ang pagsubok sa pagbuo ng mga kasanayan upang mailapat ang kaalaman ng isang tao sa isang bagong sitwasyon ay isinasagawa sa pamamagitan ng pagpasa. Sa partikular, ito ay ang kakayahang malutas ang mga lohikal na problema. Ang Mga Gawain B15 sa Pinag-isang Estado na Pagsusuri ay mga gawain na mas kumplikado, dahil naglalaman ang mga ito ng mga sistema ng mga lohikal na equation. Mayroong iba't ibang mga paraan upang malutas ang mga sistema ng mga lohikal na equation. Ito ay pagbabawas sa isang equation, pagbuo ng isang talahanayan ng katotohanan, agnas, sunud-sunod na solusyon ng mga equation, atbp.

Gawain:Lutasin ang isang sistema ng mga lohikal na equation:

Isaalang-alang natin paraan ng pagbabawas sa isang equation . Ang pamamaraang ito ay nagsasangkot ng pagbabago ng mga lohikal na equation upang ang kanilang kanang bahagi ay katumbas ng halaga ng katotohanan (iyon ay, 1). Upang gawin ito, gamitin ang lohikal na pagpapatakbo ng negation. Pagkatapos, kung ang mga equation ay naglalaman ng mga kumplikadong lohikal na operasyon, pinapalitan namin ang mga ito ng mga pangunahing: "AT", "O", "HINDI". Ang susunod na hakbang ay upang pagsamahin ang mga equation sa isa, katumbas ng system, gamit ang lohikal na operasyon na "AT". Pagkatapos nito, dapat mong baguhin ang resultang equation batay sa mga batas ng lohikal na algebra at kumuha ng partikular na solusyon sa system.

Solusyon 1:Ilapat ang inversion sa magkabilang panig ng unang equation:

Isipin natin ang implikasyon sa pamamagitan ng mga pangunahing operasyong "O" at "HINDI":

Dahil ang mga kaliwang bahagi ng mga equation ay katumbas ng 1, maaari nating pagsamahin ang mga ito gamit ang "AT" na operasyon sa isang equation na katumbas ng orihinal na sistema:

Binuksan namin ang unang bracket ayon sa batas ni De Morgan at binago namin ang resultang nakuha:

Ang resultang equation ay may isang solusyon: A= 0, B =0 at C =1.

Ang susunod na paraan ay paggawa ng mga talahanayan ng katotohanan . Dahil ang mga lohikal na dami ay may dalawang halaga lamang, maaari mo lamang na dumaan sa lahat ng mga opsyon at hanapin kasama ng mga ito ang mga kung saan ang isang naibigay na sistema ng mga equation ay nasiyahan. Iyon ay, bumuo kami ng isang karaniwang talahanayan ng katotohanan para sa lahat ng mga equation ng system at makahanap ng isang linya na may mga kinakailangang halaga.

Solusyon 2:Gumawa tayo ng talahanayan ng katotohanan para sa system:

0

0

1

1

0

1

Ang linya kung saan natutugunan ang mga kundisyon ng gawain ay naka-highlight sa bold. Kaya A =0, B =0 at C =1.

Paraan pagkabulok . Ang ideya ay ayusin ang halaga ng isa sa mga variable (itakda itong katumbas ng 0 o 1) at sa gayon ay gawing simple ang mga equation. Pagkatapos ay maaari mong ayusin ang halaga ng pangalawang variable, at iba pa.

Solusyon 3: Hayaan A = 0, pagkatapos ay:

Mula sa unang equation na nakuha namin B =0, at mula sa pangalawa – C=1. Solusyon ng system: A = 0, B = 0 at C = 1.

Maaari mo ring gamitin ang pamamaraan sunud-sunod na solusyon ng mga equation , sa bawat hakbang ay nagdaragdag ng isang variable sa hanay na isinasaalang-alang. Upang gawin ito, kinakailangan na ibahin ang anyo ng mga equation upang ang mga variable ay maipasok sa pagkakasunud-sunod ng alpabeto. Susunod, bumuo kami ng isang puno ng desisyon, sunud-sunod na pagdaragdag ng mga variable dito.

Ang unang equation ng system ay nakasalalay lamang sa A at B, at ang pangalawang equation sa A at C. Ang variable A ay maaaring tumagal ng 2 halaga 0 at 1:


Mula sa unang equation ito ay sumusunod na , kaya kapag A = 0 at makuha namin ang B = 0, at para sa A = 1 mayroon kaming B = 1. Kaya, ang unang equation ay may dalawang solusyon na may paggalang sa mga variable na A at B.

Ilarawan natin ang pangalawang equation, kung saan natin tinutukoy ang mga halaga ng C para sa bawat opsyon. Kapag A =1, ang implikasyon ay hindi maaaring mali, ibig sabihin, ang pangalawang sangay ng puno ay walang solusyon. Sa A= 0 makukuha natin ang tanging solusyon C= 1 :

Kaya, nakuha namin ang solusyon sa system: A = 0, B = 0 at C = 1.

Sa Unified State Exam sa computer science, madalas na kinakailangan upang matukoy ang bilang ng mga solusyon sa isang sistema ng mga lohikal na equation, nang hindi nahahanap ang mga solusyon sa kanilang sarili; mayroon ding ilang mga pamamaraan para dito. Ang pangunahing paraan upang mahanap ang bilang ng mga solusyon sa isang sistema ng mga lohikal na equation ay pagpapalit ng mga variable. Una, kailangan mong gawing simple ang bawat isa sa mga equation hangga't maaari batay sa mga batas ng lohikal na algebra, at pagkatapos ay palitan ang mga kumplikadong bahagi ng mga equation ng mga bagong variable at matukoy ang bilang ng mga solusyon sa bagong sistema. Susunod, bumalik sa kapalit at tukuyin ang bilang ng mga solusyon para dito.

Gawain:Ilang solusyon mayroon ang equation ( A → B ) + (C → D ) = 1? Kung saan ang A, B, C, D ay mga lohikal na variable.

Solusyon:Ipakilala natin ang mga bagong variable: X = A → B at Y = C → D . Isinasaalang-alang ang mga bagong variable, ang equation ay isusulat bilang: X + Y = 1.

Ang disjunction ay totoo sa tatlong kaso: (0;1), (1;0) at (1;1), habang X at Y ay isang implikasyon, ibig sabihin, ito ay totoo sa tatlong kaso at mali sa isa. Samakatuwid, ang kaso (0;1) ay tumutugma sa tatlong posibleng kumbinasyon ng mga parameter. Case (1;1) – ay tumutugma sa siyam na posibleng kumbinasyon ng mga parameter ng orihinal na equation. Nangangahulugan ito na ang kabuuang posibleng solusyon sa equation na ito ay 3+9=15.

Ang susunod na paraan upang matukoy ang bilang ng mga solusyon sa isang sistema ng mga lohikal na equation ay binary tree. Tingnan natin ang pamamaraang ito gamit ang isang halimbawa.

Gawain:Ilang magkakaibang solusyon mayroon ang sistema ng mga lohikal na equation:

Ang ibinigay na sistema ng mga equation ay katumbas ng equation:

( x 1 x 2 )*( x 2 x 3 )*…*( x m -1 x m) = 1.

Magpanggap na tayox 1 - ay totoo, pagkatapos ay mula sa unang equation makuha namin iyonx 2 totoo rin, mula sa pangalawa -x 3 =1, at iba pa hanggang x m= 1. Kaya ang set (1; 1; …; 1) ng m Ang mga yunit ay ang solusyon ng system. Hayaan mo nax 1 =0, pagkatapos ay mula sa unang equation na mayroon kamix 2 =0 o x 2 =1.

Kailan x 2 totoo, nakuha namin na ang natitirang mga variable ay totoo rin, iyon ay, ang set (0; 1; ...; 1) ay isang solusyon sa system. Sax 2 =0 makuha natin iyan x 3 =0 o x 3 =, at iba pa. Sa pagpapatuloy sa huling variable, nakita namin na ang mga solusyon sa equation ay ang mga sumusunod na hanay ng mga variable ( m +1 na solusyon, sa bawat solusyon m variable na halaga):

(1; 1; 1; …; 1)

(0; 1; 1; …; 1)

(0; 0; 0; …; 0)

Ang diskarte na ito ay mahusay na inilarawan sa pamamagitan ng pagbuo ng isang binary tree. Ang bilang ng mga posibleng solusyon ay ang bilang ng iba't ibang sanga ng itinayong puno. Madaling makita na ito ay pantay m +1.

Mga variable

Puno

Bilang ng mga solusyon

x 1

x 2

x 3

Sa kaso ng mga kahirapan sa pangangatwiran at pagbuo ng isang puno ng desisyon, maaari kang maghanap para sa isang solusyon gamit mga talahanayan ng katotohanan, para sa isa o dalawang equation.

Isulat muli natin ang sistema ng mga equation sa anyo:

At gumawa tayo ng talahanayan ng katotohanan nang hiwalay para sa isang equation:

x 1

x 2

(x 1 → x 2)

Gumawa tayo ng talahanayan ng katotohanan para sa dalawang equation:

x 1

x 2

x 3

x 1 → x 2

x 2 → x 3

(x 1 → x 2) * (x 2 → x 3)

Susunod, makikita mo na ang isang equation ay totoo sa sumusunod na tatlong kaso: (0; 0), (0; 1), (1; 1). Ang isang sistema ng dalawang equation ay totoo sa apat na kaso (0; 0; 0), (0; 0; 1), (0; 1; 1), (1; 1; 1). Sa kasong ito, agad na malinaw na mayroong isang solusyon na binubuo lamang ng mga zero at higit pa m mga solusyon kung saan ang isang yunit ay idinagdag sa isang pagkakataon, simula sa huling posisyon hanggang sa mapunan ang lahat ng posibleng lugar. Maaaring ipagpalagay na ang pangkalahatang solusyon ay magkakaroon ng parehong anyo, ngunit para sa gayong paraan upang maging isang solusyon, kinakailangan ang patunay na tama ang palagay.

Upang ibuod ang lahat ng nasa itaas, nais kong iguhit ang iyong pansin sa katotohanan na hindi lahat ng mga pamamaraan na tinalakay ay pangkalahatan. Kapag nilulutas ang bawat sistema ng mga lohikal na equation, dapat isaalang-alang ng isa ang mga tampok nito, batay sa kung saan dapat piliin ang paraan ng solusyon.

Panitikan:

1. Mga lohikal na problema / O.B. Bogomolov – 2nd ed. – M.: BINOM. Laboratory of Knowledge, 2006. – 271 p.: ill.

2. Polyakov K.Yu. Mga sistema ng lohikal na equation / Pang-edukasyon at metodolohikal na pahayagan para sa mga guro ng computer science: Informatics No. 14, 2011.

Paksa ng aralin: Paglutas ng Logic Equation

Pang-edukasyon - pag-aaral ng mga pamamaraan para sa paglutas ng mga lohikal na equation, pagbuo ng mga kasanayan sa paglutas ng mga lohikal na equation at pagbuo ng lohikal na pagpapahayag gamit ang isang talahanayan ng katotohanan;

Pag-unlad - lumikha ng mga kondisyon para sa pag-unlad ng nagbibigay-malay na interes ng mga mag-aaral, itaguyod ang pag-unlad ng memorya, atensyon, at lohikal na pag-iisip;

Pang-edukasyon : itaguyod ang kakayahang makinig sa mga opinyon ng iba, pag-aalaga ng kalooban at tiyaga upang makamit ang mga huling resulta.

Uri ng aralin: pinagsamang aralin

Kagamitan: kompyuter, multimedia projector, presentasyon 6.

Sa panahon ng mga klase

    Pag-uulit at pag-update ng mga pangunahing kaalaman. Pagsusuri ng takdang-aralin (10 minuto)

Sa mga nakaraang aralin, naging pamilyar tayo sa mga pangunahing batas ng lohikal na algebra at natutong gamitin ang mga batas na ito upang gawing simple ang mga lohikal na expression.

Suriin natin ang aming araling-bahay sa pagpapasimple ng mga lohikal na expression:

1. Alin sa mga sumusunod na salita ang nakakatugon sa lohikal na kondisyon:

(unang titik katinig → pangalawang titik na katinig)٨ (huling titik patinig → penultimate titik patinig)? Kung mayroong ilang mga ganoong salita, ipahiwatig ang pinakamaliit sa mga ito.

1) ANNA 2) MARIA 3) OLEG 4) STEPAN

Ipakilala natin ang sumusunod na notasyon:

A – unang titik na katinig

B – pangalawang titik na katinig

S – huling titik patinig

D – penultimate vowel letter

Gumawa tayo ng expression:

Gumawa tayo ng talahanayan:

2. Ipahiwatig kung aling lohikal na expression ang katumbas ng expression


Pasimplehin natin ang pag-record ng orihinal na expression at ang mga iminungkahing opsyon:

3. Ibinigay ang isang fragment ng talahanayan ng katotohanan ng expression F:

Aling expression ang tumutugma sa F?


Tukuyin natin ang mga halaga ng mga expression na ito para sa tinukoy na mga halaga ng mga argumento:

    Panimula sa paksa ng aralin, paglalahad ng bagong materyal (30 minuto)

Patuloy nating pinag-aaralan ang mga pangunahing kaalaman sa lohika at ang paksa ng ating aralin ngayon ay “Paglutas ng Logical Equation.” Pagkatapos pag-aralan ang paksang ito, matututunan mo ang mga pangunahing paraan ng paglutas ng mga lohikal na equation, magkakaroon ng mga kasanayan upang malutas ang mga equation na ito sa pamamagitan ng paggamit ng wika ng logical algebra at ang kakayahang bumuo ng lohikal na pagpapahayag gamit ang talahanayan ng katotohanan.

1. Lutasin ang isang logic equation

(¬K M) → (¬L M N) =0

Isulat ang iyong sagot bilang isang string ng apat na mga character: ang mga halaga ng mga variable K, L, M at N (sa pagkakasunud-sunod na iyon). Kaya, halimbawa, ang linya 1101 ay tumutugma sa katotohanan na K=1, L=1, M=0, N=1.

Solusyon:

Ibahin natin ang ekspresyon(¬K M) → (¬L M N)

Mali ang isang expression kapag mali ang parehong termino. Ang pangalawang termino ay katumbas ng 0 kung M =0, N =0, L =1. Sa unang termino K = 0, dahil M = 0, at
.

Sagot: 0100

2. Ilang solusyon mayroon ang equation (isaad lamang ang numero sa iyong sagot)?

Solusyon: baguhin ang expression

(A +B )*(C +D )=1

A +B =1 at C +D =1

Paraan 2: pagguhit ng talahanayan ng katotohanan

3 paraan: pagbuo ng isang SDNF - isang perpektong disjunctive normal na anyo para sa isang function - isang disjunction ng kumpletong regular na elementarya conjunctions.

Ibahin natin ang orihinal na expression, buksan ang mga bracket upang makuha ang disjunction ng mga conjunctions:

(A+B)*(C+D)=A*C+B*C+A*D+B*D=

Dagdagan natin ang mga pang-ugnay upang makumpleto ang mga pang-ugnay (ang produkto ng lahat ng mga argumento), buksan ang mga bracket:

Isaalang-alang natin ang parehong mga pang-ugnay:

Bilang resulta, nakakakuha kami ng SDNF na naglalaman ng 9 na mga conjunction. Samakatuwid, ang talahanayan ng katotohanan para sa function na ito ay may halagang 1 sa 9 na hanay ng 2 4 =16 na hanay ng mga variable na halaga.

3. Ilang solusyon mayroon ang equation (isaad lamang ang numero sa iyong sagot)?

Pasimplehin natin ang expression:

,

3 paraan: pagtatayo ng SDNF

Isaalang-alang natin ang parehong mga pang-ugnay:

Bilang resulta, nakakakuha kami ng SDNF na naglalaman ng 5 mga conjunction. Samakatuwid, ang talahanayan ng katotohanan para sa function na ito ay may value 1 sa 5 row ng 2 4 =16 set ng variable value.

Pagbuo ng lohikal na pagpapahayag gamit ang talahanayan ng katotohanan:

para sa bawat hilera ng talahanayan ng katotohanan na naglalaman ng 1, bumubuo kami ng isang produkto ng mga argumento, at ang mga variable na katumbas ng 0 ay kasama sa produktong may negation, at ang mga variable na katumbas ng 1 ay kasama nang walang negation. Ang gustong expression na F ay bubuuin ng kabuuan ng mga resultang produkto. Pagkatapos, kung maaari, ang expression na ito ay dapat na pasimplehin.

Halimbawa: isang talahanayan ng katotohanan ng isang expression ay ibinigay. Bumuo ng lohikal na pagpapahayag.

Solusyon:

3. Takdang-Aralin (5 minuto)

    Lutasin ang equation:

    Gaano karaming mga solusyon ang mayroon ang equation (ipahiwatig lamang ang numero sa iyong sagot)?

    Gamit ang ibinigay na talahanayan ng katotohanan, bumuo ng isang lohikal na pagpapahayag at

pasimplehin ito.

Paano lutasin ang ilang mga problema sa seksyon A at B ng pagsusulit sa agham ng computer

Aralin #3. Logics. Mga function ng lohika. Paglutas ng mga equation

Ang isang malaking bilang ng mga problema sa Pinag-isang State Exam ay nakatuon sa proposisyonal na lohika. Upang malutas ang karamihan sa kanila, sapat na upang malaman ang mga pangunahing batas ng propositional logic, kaalaman sa mga talahanayan ng katotohanan ng mga lohikal na pag-andar ng isa at dalawang variable. Ibibigay ko ang mga pangunahing batas ng propositional logic.

  1. Commutativity ng disjunction at conjunction:
    a ˅ b ≡ b ˅ a
    a^b ≡ b^a
  2. Pamamahagi ng batas tungkol sa disjunction at conjunction:
    a ˅ (b^с) ≡ (a ˅ b) ^(a ˅ с)
    a ^ (b ˅ c) ≡ (a ^ b) ˅ (a ^ c)
  3. Negasyon ng Negasyon:
    ¬(¬a) ≡ a
  4. Hindi pagbabago:
    isang ^ ¬а ≡ mali
  5. Eksklusibong pangatlo:
    isang ˅ ¬а ≡ totoo
  6. Mga batas ni De Morgan:
    ¬(a ˅ b) ≡ ¬a ˄ ¬b
    ¬(a ˄ b) ≡ ¬a ˅ ¬b
  7. Pagpapasimple:
    a ˄ a ≡ a
    a ˅ a ≡ a
    a ˄ totoo ≡ a
    isang ˄ false ≡ false
  8. Pagsipsip:
    a ˄ (a ˅ b) ≡ a
    a ˅ (a ˄ b) ≡ a
  9. Pagpapalit ng implikasyon
    a → b ≡ ¬a ˅ b
  10. Pagpapalit ng pagkakakilanlan
    a ≡ b ≡(a ˄ b) ˅ (¬a ˄ ¬b)

Representasyon ng mga lohikal na pag-andar

Anumang lohikal na function ng n variable - F(x 1, x 2, ... x n) ay maaaring tukuyin ng isang talahanayan ng katotohanan. Ang nasabing talahanayan ay naglalaman ng 2n set ng mga variable, para sa bawat isa kung saan ang halaga ng isang function sa set na ito ay tinukoy. Ang pamamaraang ito ay mabuti kapag ang bilang ng mga variable ay medyo maliit. Nasa n > 5 na ang representasyon ay nagiging hindi gaanong nakikita.

Ang isa pang paraan ay ang tukuyin ang function sa pamamagitan ng ilang formula gamit ang mga kilalang simpleng function. Ang isang sistema ng mga function (f 1, f 2, ... f k) ay tinatawag na kumpleto kung anumang lohikal na function ay maaaring ipahayag sa pamamagitan ng isang formula na naglalaman lamang ng mga function f i.

Ang sistema ng mga function (¬, ˄, ˅) ay kumpleto na. Ang mga Batas 9 at 10 ay mga halimbawang nagpapakita kung paano ipinahahayag ang implikasyon at pagkakakilanlan sa pamamagitan ng negasyon, conjunction at disjunction.

Sa katunayan, ang isang sistema ng dalawang function - negation at conjunction o negation at disjunction - ay kumpleto rin. Mula sa mga batas ni De Morgan ay sinusunod ang mga ideya na nagpapahintulot sa isa na magpahayag ng isang pangatnig sa pamamagitan ng negasyon at disjunction at, nang naaayon, upang ipahayag ang isang disjunction sa pamamagitan ng negation at conjunction:

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

Paradoxically, ang isang system na binubuo ng isang function ay kumpleto na. Mayroong dalawang binary function - anticonjunction at antidisjunction, na tinatawag na Peirce arrow at ang Schaeffer stroke, na kumakatawan sa isang guwang na sistema.

Ang mga pangunahing pag-andar ng mga programming language ay karaniwang kasama ang pagkakakilanlan, negation, conjunction at disjunction. Sa mga problema sa Unified State Examination, kasama ng mga function na ito, madalas na makikita ang implikasyon.

Tingnan natin ang ilang simpleng problema na kinasasangkutan ng mga lohikal na function.

Problema 15:

Ang isang fragment ng talahanayan ng katotohanan ay ibinigay. Alin sa tatlong function na ibinigay ang tumutugma sa fragment na ito?

X 1 X 2 X 3 X 4 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)

Numero ng function 3.

Upang malutas ang problema, kailangan mong malaman ang mga talahanayan ng katotohanan ng mga pangunahing pag-andar at tandaan ang mga priyoridad ng mga operasyon. Ipaalala ko sa iyo na ang conjunction (lohikal na multiplikasyon) ay may mas mataas na priyoridad at mas maagang naisakatuparan kaysa disjunction (lohikal na karagdagan). Sa panahon ng mga kalkulasyon, madaling mapansin na ang mga function na may mga numero 1 at 2 sa ikatlong hanay ay may halaga 1 at sa kadahilanang ito ay hindi tumutugma sa fragment.

Problema 16:

Alin sa mga ibinigay na numero ang nakakatugon sa kundisyon:

(mga digit, simula sa pinaka makabuluhang digit, ay nasa pababang pagkakasunud-sunod) → (number - even) ˄ (low digit - even) ˄ (high digit - odd)

Kung mayroong ilang mga numero, ipahiwatig ang pinakamalaki.

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

Ang kundisyon ay natutugunan ng numerong numero 4.

Ang unang dalawang numero ay hindi nakakatugon sa kundisyon sa kadahilanang ang pinakamababang digit ay kakaiba. Mali ang pagsasama ng mga kundisyon kung mali ang isa sa mga tuntunin ng pang-ugnay. Para sa pangatlong numero, hindi natutugunan ang kundisyon para sa pinakamataas na digit. Para sa ikaapat na numero, ang mga kundisyon na ipinataw sa mababa at mataas na mga digit ng numero ay natutugunan. Ang unang termino ng pang-ugnay ay totoo rin, dahil ang implikasyon ay totoo kung ang premise nito ay mali, na ang kaso dito.

Problema 17: Dalawang saksi ang nagbigay ng sumusunod na patotoo:

Unang saksi: Kung nagkasala si A, mas may kasalanan si B, at inosente si C.

Pangalawang saksi: Dalawa ang nagkasala. At ang isa sa mga natitira ay tiyak na nagkasala at nagkasala, ngunit hindi ko masasabi kung sino ang eksaktong.

Anong mga konklusyon tungkol sa pagkakasala ng A, B at C ang maaaring makuha mula sa patotoo?

Sagot: Mula sa patotoo ay sumusunod na ang A at B ay nagkasala, at si C ay inosente.

Solusyon: Siyempre, ang sagot ay maaaring ibigay batay sa sentido komun. Ngunit tingnan natin kung paano ito magagawa nang mahigpit at pormal.

Ang unang bagay na dapat gawin ay gawing pormal ang mga pahayag. Ipakilala natin ang tatlong lohikal na variable - A, B at C, na ang bawat isa ay may value na true (1) kung nagkasala ang kaukulang suspek. Pagkatapos ang patotoo ng unang saksi ay ibinibigay ng pormula:

A → (B ˄ ¬C)

Ang patotoo ng pangalawang saksi ay ibinibigay ng pormula:

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

Ang patotoo ng parehong mga saksi ay ipinapalagay na totoo at kumakatawan sa pagsasama ng mga kaukulang mga formula.

Bumuo tayo ng talahanayan ng katotohanan para sa mga pagbasang ito:

A B C F 1 F 2 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

Ang buod na ebidensya ay totoo sa isang kaso lamang, na humahantong sa isang malinaw na sagot - ang A at B ay nagkasala, at si C ay inosente.

Mula sa pagsusuri ng talahanayang ito ay sumusunod din na ang patotoo ng pangalawang saksi ay higit na nagbibigay-kaalaman. Mula sa katotohanan ng kanyang patotoo, dalawang posibleng pagpipilian lamang ang sumusunod - A at B ay nagkasala, at si C ay walang kasalanan, o A at C ay nagkasala, at B ay walang kasalanan. Ang patotoo ng unang saksi ay hindi gaanong nagbibigay-kaalaman - mayroong 5 iba't ibang opsyon na naaayon sa kanyang patotoo. Magkasama, ang testimonya ng dalawang testigo ay nagbibigay ng malinaw na sagot tungkol sa pagkakasala ng mga suspek.

Mga lohikal na equation at sistema ng mga equation

Hayaang ang F(x 1, x 2, …x n) ay isang lohikal na function ng n variable. Ang lohikal na equation ay ganito ang hitsura:

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

Ang pare-parehong C ay may halagang 1 o 0.

Ang isang lohikal na equation ay maaaring magkaroon ng mula 0 hanggang 2 n magkakaibang solusyon. Kung ang C ay katumbas ng 1, ang mga solusyon ay ang lahat ng mga hanay ng mga variable mula sa talahanayan ng katotohanan kung saan kinukuha ng function F ang halagang totoo (1). Ang natitirang mga set ay mga solusyon ng equation na may C katumbas ng zero. Maaari mong palaging isaalang-alang ang mga equation lamang ng form:

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

Sa katunayan, hayaan ang equation na ibigay:

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

Sa kasong ito, maaari tayong pumunta sa katumbas na equation:

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

Isaalang-alang ang isang sistema ng k logical equation:

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

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

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

Ang solusyon sa isang sistema ay isang hanay ng mga variable kung saan ang lahat ng mga equation ng system ay nasiyahan. Sa mga tuntunin ng mga lohikal na pag-andar, upang makakuha ng isang solusyon sa isang sistema ng mga lohikal na equation, ang isa ay dapat makahanap ng isang hanay kung saan ang lohikal na function na Ф ay totoo, na kumakatawan sa kaakibat ng mga orihinal na function F:

Ф = F 1 ˄ F 2 ˄ … F k

Kung ang bilang ng mga variable ay maliit, halimbawa, mas mababa sa 5, kung gayon hindi mahirap na bumuo ng isang talahanayan ng katotohanan para sa function na Ф, na nagpapahintulot sa amin na sabihin kung gaano karaming mga solusyon ang mayroon ang system at kung ano ang mga hanay na nagbibigay ng mga solusyon.

Sa ilang mga problema sa PAGGAMIT sa paghahanap ng mga solusyon sa isang sistema ng mga lohikal na equation, ang bilang ng mga variable ay umabot sa 10. Pagkatapos ay ang pagbuo ng talahanayan ng katotohanan ay nagiging halos imposibleng gawain. Ang paglutas ng problema ay nangangailangan ng ibang paraan. Para sa isang arbitrary na sistema ng mga equation, walang pangkalahatang paraan maliban sa enumeration na nagpapahintulot sa paglutas ng mga naturang problema.

Sa mga problemang iminungkahi sa pagsusulit, ang solusyon ay karaniwang batay sa pagsasaalang-alang sa mga detalye ng sistema ng mga equation. Uulitin ko, bukod sa pagsubok sa lahat ng mga opsyon para sa isang hanay ng mga variable, walang pangkalahatang paraan upang malutas ang problema. Ang solusyon ay dapat na binuo batay sa mga detalye ng system. Kadalasan ay kapaki-pakinabang na magsagawa ng isang paunang pagpapasimple ng isang sistema ng mga equation gamit ang mga kilalang batas ng lohika. Ang isa pang kapaki-pakinabang na pamamaraan para sa paglutas ng problemang ito ay ang mga sumusunod. Hindi kami interesado sa lahat ng hanay, ngunit ang mga kung saan ang function na Ф ay may halaga 1. Sa halip na bumuo ng isang kumpletong talahanayan ng katotohanan, bubuo kami ng analogue nito - isang binary decision tree. Ang bawat sangay ng punong ito ay tumutugma sa isang solusyon at tumutukoy sa isang set kung saan ang function na Ф ay may halaga na 1. Ang bilang ng mga sanga sa puno ng desisyon ay tumutugma sa bilang ng mga solusyon sa sistema ng mga equation.

Ipapaliwanag ko kung ano ang binary decision tree at kung paano ito binuo gamit ang mga halimbawa ng ilang problema.

Suliranin 18

Ilang iba't ibang hanay ng mga halaga ng mga lohikal na variable x1, x2, x3, x4, x5, y1, y2, y3, y4, y5 ang naroroon na nakakatugon sa sistema ng dalawang equation?

Sagot: Ang sistema ay may 36 na magkakaibang solusyon.

Solusyon: Kasama sa sistema ng mga equation ang dalawang equation. Hanapin natin ang bilang ng mga solusyon para sa unang equation, depende sa 5 variable - x 1, x 2, ...x 5. Ang unang equation ay maaari namang ituring bilang isang sistema ng 5 equation. Tulad ng ipinakita, ang sistema ng mga equation ay aktwal na kumakatawan sa pagsasama ng mga lohikal na function. Ang kabaligtaran ay totoo rin: ang isang kumbinasyon ng mga kondisyon ay maaaring ituring bilang isang sistema ng mga equation.

Bumuo tayo ng decision tree para sa implikasyon (x1→ x2) - ang unang termino ng conjunction, na maaaring ituring na unang equation. Ganito ang hitsura ng isang graphical na representasyon ng punong ito:

Ang puno ay binubuo ng dalawang antas ayon sa bilang ng mga variable sa equation. Inilalarawan ng unang antas ang unang variable X 1 . Ang dalawang sangay ng antas na ito ay sumasalamin sa mga posibleng halaga ng variable na ito - 1 at 0. Sa pangalawang antas, ang mga sanga ng puno ay sumasalamin lamang sa mga posibleng halaga ng variable na X 2 kung saan ang equation ay totoo. Dahil ang equation ay tumutukoy sa isang implikasyon, ang isang sangay kung saan ang X 1 ay may halagang 1 ay nangangailangan na sa sangay na iyon X 2 ay may halagang 1. Ang isang sangay kung saan ang X 1 ay may halagang 0 ay gumagawa ng dalawang sangay na may mga halaga ng X 2 katumbas ng 0 at 1 Ang itinayong puno ay tumutukoy sa tatlong solusyon, kung saan ang implikasyon na X 1 → X 2 ay tumatagal ng halaga 1. Sa bawat sangay, isang kaukulang hanay ng mga variable na halaga ay nakasulat, na nagbibigay ng solusyon sa equation.

Ang mga set na ito ay: ((1, 1), (0, 1), (0, 0))

Ipagpatuloy natin ang pagbuo ng decision tree sa pamamagitan ng pagdaragdag ng sumusunod na equation, ang sumusunod na implikasyon X 2 → X 3 . Ang pagiging tiyak ng aming sistema ng mga equation ay ang bawat bagong equation ng system ay gumagamit ng isang variable mula sa nakaraang equation, pagdaragdag ng isang bagong variable. Dahil ang variable na X 2 ay mayroon nang mga halaga sa puno, pagkatapos ay sa lahat ng mga sanga kung saan ang variable na X 2 ay may halaga na 1, ang variable na X 3 ay magkakaroon din ng isang halaga ng 1. Para sa mga naturang sanga, ang pagtatayo ng puno nagpapatuloy sa susunod na antas, ngunit hindi lilitaw ang mga bagong sangay. Ang nag-iisang sangay kung saan ang variable na X 2 ay may halagang 0 ay magsasanga sa dalawang sangay kung saan ang variable na X 3 ay makakatanggap ng mga halaga 0 at 1. Kaya, ang bawat pagdaragdag ng isang bagong equation, na ibinigay sa mga detalye nito, ay nagdaragdag ng isang solusyon. Orihinal na unang equation:

(x1→x2) /\ (x2→x3) /\ (x3→x4) /\ (x4→x5) = 1
may 6 na solusyon. Narito kung ano ang hitsura ng kumpletong puno ng desisyon para sa equation na ito:

Ang pangalawang equation ng aming system ay katulad ng una:

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

Ang pagkakaiba lamang ay ang equation ay gumagamit ng mga variable na Y. Ang equation na ito ay mayroon ding 6 na solusyon. Dahil ang bawat solusyon para sa mga variable na X i ay maaaring isama sa bawat solusyon para sa mga variable na Y j , ang kabuuang bilang ng mga solusyon ay 36.

Mangyaring tandaan na ang itinayong puno ng desisyon ay nagbibigay hindi lamang ng bilang ng mga solusyon (ayon sa bilang ng mga sanga), kundi pati na rin ang mga solusyon mismo na nakasulat sa bawat sangay ng puno.

Suliranin 19

Ilang iba't ibang hanay ng mga halaga ng mga lohikal na variable x1, x2, x3, x4, x5, y1, y2, y3, y4, y5 ang naroroon na nakakatugon sa lahat ng mga kundisyon na nakalista sa ibaba?

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

Ang gawaing ito ay pagbabago ng nakaraang gawain. Ang pagkakaiba ay ang isa pang equation ay idinagdag na nag-uugnay sa mga variable na X at Y.

Mula sa equation na X 1 → Y 1 sumusunod na kapag ang X 1 ay may halaga 1 (umiiral ang isang ganoong solusyon), kung gayon ang Y 1 ay mayroon ding halaga 1. Kaya, mayroong isang set kung saan ang X 1 at Y 1 ay mayroong mga halaga. 1. Kapag ang X 1 ay katumbas ng 0, ang Y 1 ay maaaring magkaroon ng anumang halaga, parehong 0 at 1. Samakatuwid, ang bawat set na may X 1 ay katumbas ng 0, at mayroong 5 ganoong set, ay tumutugma sa lahat ng 6 na set na may Y variable. Samakatuwid, ang kabuuang bilang ng mga solusyon ay 31 .

Suliranin 20

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

Solusyon: Ang pag-alala sa mga pangunahing equivalence, isinusulat namin ang aming equation bilang:

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

Ang cyclic chain of implications ay nangangahulugan na ang mga variable ay magkapareho, kaya ang aming equation ay katumbas ng equation:

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

Ang equation na ito ay may dalawang solusyon kapag ang lahat ng X i ay alinman sa 1 o 0.

Suliranin 21

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

Solusyon: Tulad ng sa problema 20, lumilipat tayo mula sa mga paikot na implikasyon patungo sa mga pagkakakilanlan, na muling isinusulat ang equation sa anyo:

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

Bumuo tayo ng decision tree para sa equation na ito:

Suliranin 22

Ilang solusyon mayroon ang sumusunod na sistema ng mga equation?

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

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

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

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

Sagot: 64

Solusyon: Lumipat tayo mula sa 10 variable patungo sa 5 variable sa pamamagitan ng pagpapakilala ng sumusunod na pagbabago ng mga variable:

Y 1 = (X 1 ≡ X 2); Y 2 = (X 3 ≡ X 4); Y 3 = (X 5 ≡ X 6); Y 4 = (X 7 ≡ X 8); Y 5 = (X 9 ≡ X 10);

Pagkatapos ang unang equation ay kukuha ng form:

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

Ang equation ay maaaring gawing simple sa pamamagitan ng pagsulat nito bilang:

(Y 1 ≡ Y 2) = 0

Sa paglipat sa tradisyonal na anyo, isinusulat namin ang system pagkatapos ng mga pagpapasimple sa anyo:

¬(Y 1 ≡ Y 2) = 1

¬(Y 2 ≡ Y 3) = 1

¬(Y 3 ≡ Y 4) = 1

¬(Y 4 ≡ Y 5) = 1

Ang decision tree para sa system na ito ay simple at binubuo ng dalawang sangay na may mga alternating variable value:


Pagbabalik sa orihinal na X variable, tandaan na para sa bawat value sa Y variable ay mayroong 2 values ​​sa X variable, kaya ang bawat solusyon sa Y variable ay bumubuo ng 2 5 na solusyon sa X variable. Ang dalawang branch ay bumubuo ng 2 * 2 5 solusyon, kaya ang kabuuang bilang ng mga solusyon ay 64.

Tulad ng nakikita mo, ang bawat problema sa paglutas ng isang sistema ng mga equation ay nangangailangan ng sarili nitong diskarte. Ang isang karaniwang pamamaraan ay ang magsagawa ng mga katumbas na pagbabagong-anyo upang gawing simple ang mga equation. Ang isang karaniwang pamamaraan ay ang pagbuo ng mga puno ng desisyon. Ang diskarte na ginamit ay bahagyang nakapagpapaalaala sa pagbuo ng isang talahanayan ng katotohanan na may kakaibang hindi lahat ng mga hanay ng mga posibleng halaga ng mga variable ay itinayo, ngunit ang mga kung saan ang function ay kumukuha ng halaga 1 (totoo). Kadalasan sa mga iminungkahing problema ay hindi na kailangang bumuo ng isang kumpletong puno ng desisyon, dahil nasa paunang yugto na posible na maitatag ang pattern ng paglitaw ng mga bagong sanga sa bawat kasunod na antas, tulad ng ginawa, halimbawa, sa problema 18 .

Sa pangkalahatan, ang mga problemang kinasasangkutan ng paghahanap ng mga solusyon sa isang sistema ng mga lohikal na equation ay mahusay na mathematical exercises.

Kung ang problema ay mahirap lutasin nang manu-mano, maaari mong ipagkatiwala ang solusyon sa computer sa pamamagitan ng pagsusulat ng naaangkop na programa para sa paglutas ng mga equation at mga sistema ng mga equation.

Hindi mahirap magsulat ng ganitong programa. Ang ganitong programa ay madaling makayanan ang lahat ng mga gawain na inaalok sa Pinag-isang Estado ng Pagsusulit.

Kakatwa, ang gawain ng paghahanap ng mga solusyon sa mga sistema ng mga lohikal na equation ay mahirap para sa isang computer, at lumalabas na ang isang computer ay may mga limitasyon nito. Ang computer ay madaling makayanan ang mga problema kung saan ang bilang ng mga variable ay 20-30, ngunit magsisimula itong mag-isip nang mahabang panahon sa mga problema ng mas malaking sukat. Ang katotohanan ay ang function na 2 n, na tumutukoy sa bilang ng mga set, ay isang exponential na mabilis na lumalaki habang tumataas ang n. Napakabilis na ang isang ordinaryong personal na computer ay hindi makayanan ang isang gawain na mayroong 40 mga variable sa isang araw.

Programa sa wikang C# para sa paglutas ng mga lohikal na equation

Ang pagsulat ng isang programa para sa paglutas ng mga lohikal na equation ay kapaki-pakinabang para sa maraming mga kadahilanan, kung dahil lamang sa magagamit mo ito upang suriin ang kawastuhan ng iyong sariling solusyon sa mga problema sa pagsusulit ng Unified State Exam. Ang isa pang dahilan ay ang naturang programa ay isang mahusay na halimbawa ng isang programming task na nakakatugon sa mga kinakailangan para sa kategoryang C na gawain sa Unified State Exam.

Ang ideya ng pagbuo ng isang programa ay simple - ito ay batay sa isang kumpletong paghahanap ng lahat ng posibleng hanay ng mga variable na halaga. Dahil para sa isang ibinigay na lohikal na equation o sistema ng mga equation ang bilang ng mga variable n ay kilala, kung gayon ang bilang ng mga set ay kilala rin - 2 n na kailangang ayusin. Gamit ang mga pangunahing pag-andar ng wikang C# - negation, disjunction, conjunction at pagkakakilanlan, hindi mahirap magsulat ng isang programa na, para sa isang naibigay na hanay ng mga variable, kinakalkula ang halaga ng lohikal na function na naaayon sa isang lohikal na equation o sistema ng mga equation .

Sa ganitong programa, kailangan mong bumuo ng isang loop batay sa bilang ng mga hanay, sa katawan ng loop, gamit ang bilang ng hanay, bumuo ng set mismo, kalkulahin ang halaga ng function sa set na ito, at kung ito ang halaga ay 1, pagkatapos ang hanay ay nagbibigay ng solusyon sa equation.

Ang tanging kahirapan na lumitaw kapag ipinatupad ang programa ay nauugnay sa gawain ng pagbuo ng hanay ng mga variable na halaga mismo batay sa itinakdang numero. Ang kagandahan ng problemang ito ay ang tila mahirap na gawaing ito ay talagang nagmumula sa isang simpleng problema na lumitaw nang maraming beses. Sa katunayan, sapat na upang maunawaan na ang hanay ng mga variable na halaga na tumutugma sa numero i, na binubuo ng mga zero at isa, ay kumakatawan sa binary na representasyon ng numero i. Kaya't ang kumplikadong gawain ng pagkuha ng isang hanay ng mga variable na halaga sa pamamagitan ng hanay na numero ay nabawasan sa pamilyar na gawain ng pag-convert ng isang numero sa binary.

Ito ang hitsura ng isang function sa C# na lumulutas sa aming problema:

///

/// program para sa pagbibilang ng bilang ng mga solusyon

/// logical equation (system of equation)

///

///

/// logical function - pamamaraan,

/// na ang pirma ay tinukoy ng delegado ng DF

///

/// bilang ng mga variable

/// bilang ng mga solusyon

static int SolveEquations(DF masaya, int n)

bool set = bagong bool[n];

int m = (int)Math.Pow(2, n); //bilang ng mga set

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

//Kumpletuhin ang paghahanap ayon sa bilang ng mga set

para sa (int i = 0; i< m; i++)

//Pagbubuo ng susunod na set - set,

//tinukoy ng binary na representasyon ng numero i

para sa (int j = 0; j< n; j++)

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

//Kalkulahin ang halaga ng function sa set

Upang maunawaan ang programa, sana ay sapat na ang mga paliwanag ng ideya at komento ng programa sa teksto nito. Tutuon lamang ako sa pagpapaliwanag sa pamagat ng ibinigay na function. Ang SolveEquations function ay may dalawang input parameter. Tinutukoy ng fun parameter ang isang logical function na naaayon sa equation o sistema ng mga equation na niresolba. Tinutukoy ng n parameter ang bilang ng mga nakakatuwang variable. Bilang resulta, ibinabalik ng SolveEquations function ang bilang ng mga solusyon ng logical function, iyon ay, ang bilang ng mga set kung saan ang function ay nagsusuri sa true.

Karaniwan sa mga mag-aaral kapag ang ilang function na F(x) ay may input parameter x na isang variable ng arithmetic, string o logical type. Sa aming kaso, isang mas malakas na disenyo ang ginagamit. Ang function na SolveEquations ay tumutukoy sa mga function na may mataas na pagkakasunud-sunod - mga function ng uri F(f), na ang mga parameter ay maaaring hindi lamang mga simpleng variable, kundi pati na rin ang mga function.

Ang klase ng mga function na maaaring ipasa bilang isang parameter sa SolveEquations function ay tinukoy bilang mga sumusunod:

delegate bool DF(bool vars);

Ang klase na ito ay nagmamay-ari ng lahat ng mga function na ipinasa bilang isang parameter isang hanay ng mga halaga ng mga lohikal na variable na tinukoy ng vars array. Ang resulta ay isang Boolean value na kumakatawan sa value ng function sa set na ito.

Sa wakas, narito ang isang programa na gumagamit ng SolveEquations function upang malutas ang ilang mga sistema ng mga lohikal na equation. Ang SolveEquations function ay bahagi ng ProgramCommon class sa ibaba:

Class ProgramCommon

delegate bool DF(bool vars);

static void Main(string args)

Console.WriteLine("And Functions - " +

SolveEquations(FunAnd, 2));

Console.WriteLine("The Function has 51 solutions - " +

SolveEquations(Fun51, 5));

Console.WriteLine("The Function has 53 solutions - " +

SolveEquations(Fun53, 10));

static bool FunAnd(bool vars)

ibalik ang mga 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)));

Narito kung ano ang hitsura ng mga resulta ng solusyon para sa program na ito:

10 gawain para sa malayang gawain

  1. Alin sa tatlong function ang katumbas:
    1. (X → Y) ˅ ¬Y
    2. ¬(X ˅ ¬Y) ˄ (X → ¬Y)
    3. ¬X ˄Y
  2. Ang ibinigay ay isang fragment ng talahanayan ng katotohanan:
X 1 X 2 X 3 X 4 F
1 0 0 1 1
0 1 1 1 1
1 0 1 0 0

Alin sa tatlong function ang tumutugma sa fragment na ito:

  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. Ang hurado ay binubuo ng tatlong tao. Ang desisyon ay ginawa kung ang tagapangulo ng hurado ay bumoto para dito, na sinusuportahan ng hindi bababa sa isa sa mga miyembro ng hurado. Kung hindi, walang desisyon na ginawa. Bumuo ng isang lohikal na function na nagpapapormal sa proseso ng paggawa ng desisyon.
  5. Ang X ay mananalo sa Y kung ang apat na coin tosses ay nagresulta sa mga ulo ng tatlong beses. Tukuyin ang isang lohikal na function na naglalarawan sa kabayaran ng X.
  6. Ang mga salita sa isang pangungusap ay binibilang simula sa isa. Itinuturing na wastong pagkakagawa ang isang pangungusap kung ang mga sumusunod na tuntunin ay natutugunan:
    1. Kung ang isang kahit na may bilang na salita ay nagtatapos sa isang patinig, kung gayon ang susunod na salita, kung ito ay umiiral, ay dapat magsimula sa isang patinig.
    2. Kung ang isang salitang may kakaibang bilang ay nagtatapos sa isang katinig, kung gayon ang susunod na salita, kung ito ay umiiral, ay dapat magsimula sa isang katinig at magtatapos sa isang patinig.
      Alin sa mga sumusunod na pangungusap ang wastong pagkakabuo:
    3. Hinugasan ni Nanay si Masha ng sabon.
    4. Ang isang pinuno ay palaging isang modelo.
    5. Ang katotohanan ay mabuti, ngunit ang kaligayahan ay mas mabuti.
  7. Gaano karaming mga solusyon ang mayroon ang equation:
    (a ˄ ¬ b) ˅ (¬a ˄ b) → (c ˄ d) = 1
  8. Ilista ang lahat ng mga solusyon sa equation:
    (a → b) → c = 0
  9. Ilang solusyon mayroon ang sumusunod na sistema ng mga equation:
    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. Gaano karaming mga solusyon ang mayroon ang equation:
    ((((X 0 → X 1) → X 2) → X 3) →X 4) →X 5 = 1

Mga sagot sa mga problema:

  1. Ang mga function b at c ay katumbas.
  2. Ang fragment ay tumutugma sa function b.
  3. Hayaang kunin ng lohikal na variable na P ang halaga 1 kapag ang chairman ng hurado ay bumoto "para" sa desisyon. Ang mga variable na M 1 at M 2 ay kumakatawan sa mga opinyon ng mga miyembro ng hurado. Ang lohikal na pag-andar na tumutukoy sa paggawa ng isang positibong desisyon ay maaaring isulat tulad ng sumusunod:
    P ˄ (M 1 ˅ M 2)
  4. Hayaang kunin ng lohikal na variable na P i ang halaga 1 kapag ang i-th coin toss ay dumapo sa mga ulo. Ang lohikal na function na tumutukoy sa kabayaran X ay maaaring isulat bilang mga sumusunod:
    ¬((¬P 1 ˄ (¬P 2 ˅ ¬P 3 ˅ ¬P 4)) ˅
    (¬P 2 ˄ (¬P 3 ˅ ¬P 4)) ˅
    (¬P 3 ˄ ¬P 4))
  5. Pangungusap b.
  6. Ang equation ay may 3 solusyon: (a = 1; b = 1; c = 0); (a = 0; b = 0; c = 0); (a = 0; b = 1; c = 0)