Xtai perustoimintojen kautta. Loogiset perusoperaatiot (ja, tai, xtai, ei)

Kotiin / Mobiililaitteet

Tässä artikkelissa kerron kuinka bittioperaatiot toimivat. Ensi silmäyksellä ne saattavat tuntua monimutkaisilta ja hyödyttömiltä sinulle, mutta todellisuudessa näin ei ole ollenkaan. Tästä yritän vakuuttaa sinut.

Johdanto

Bittioperaattorit toimivat suoraan luvun biteillä, joten esimerkeissä olevat luvut ovat binäärimuotoisia.

Käsittelen seuraavat bittioperaattorit:

  • | (bittisesti TAI),
  • & (Bittisesti JA (JA)),
  • ^ (yksinomainen TAI (XOR)),
  • ~ (Bittikohtainen negaatio (EI)),
  • << (Побитовый сдвиг влево),
  • >> (Bittisuuntainen siirto oikealle).

Bittioperaatioita tutkitaan diskreetissä matematiikassa ja ne muodostavat myös digitaalitekniikan perustan, sillä niihin perustuu digitaalisten piirien peruselementtien, logiikkaporttien toiminnan logiikka. Diskreetissä matematiikassa, kuten digitaalisessa suunnittelussa, totuustaulukoita käytetään kuvaamaan niiden toimintaa. Minusta totuustaulukot helpottavat suuresti bittitoimintojen ymmärtämistä, joten esitän ne tässä artikkelissa. Niitä ei kuitenkaan juuri koskaan käytetä bittikohtaisten operaattoreiden selityksissä korkean tason ohjelmointikielissä.

Sinun on myös tiedettävä bittioperaattorit:

  1. Jotkut bittikohtaiset operaattorit ovat samanlaisia ​​kuin sinulle todennäköisesti tutut operaattorit (&&, ||). Tämä johtuu siitä, että ne ovat itse asiassa jollain tavalla samanlaisia. Niitä ei kuitenkaan pidä sekoittaa missään olosuhteissa.
  2. Useimmat bittioperaatiot ovat yhdistelmäosoitusoperaatioita.

Bittikohtaisesti TAI

Bittikohtainen TAI toimii yhtä hyvin kuin looginen TAI, mutta sitä sovelletaan binääriluvun jokaiseen bittipariin. Tuloksen binääribitti on 0 vain, kun molemmat vastaavat bitit in ovat 0. Kaikissa muissa tapauksissa binääritulos on 1. Eli jos meillä on seuraava totuustaulukko:

38 | 53 tulee olemaan tällainen:

A 0 0 1 0 0 1 1 0
B 0 0 1 1 0 1 0 1
A | B 0 0 1 1 0 1 1 1

Tuloksena saamme 110111 2 tai 55 10.

Bitittain JA

Bittikohtainen AND on tavallaan päinvastainen operaatio bittikohtaiselle OR:lle. Tuloksen binääriluku on 1 vain, kun operandien molemmat vastaavat bitit ovat yhtä suuria kuin 1. Toisin sanoen voidaan sanoa, että tuloksena olevan luvun binäärinumerot ovat tulosta kertomalla operandin vastaavat bitit: 1x1 = 1, 1x0 = 0. Seuraava totuustaulukko vastaa bittikohtaista AND:ta:

Esimerkki bittikohtaisesta AND-työstä lausekkeiden 38 ja 53 parissa:

A 0 0 1 0 0 1 1 0
B 0 0 1 1 0 1 0 1
A&B 0 0 1 0 0 1 0 0

Tuloksena saamme 100100 2 tai 36 10.

Voit käyttää bittikohtaista JA-operaattoria tarkistaaksesi, onko luku parillinen vai pariton. Jos kokonaislukujen vähiten merkitsevä bitti on 1, luku on pariton (perustuu binääri-desimaalimuunnokseen). Miksi tämä on tarpeen, jos voit käyttää vain %2:ta? Esimerkiksi tietokoneellani &1 toimii 66 % nopeammin. Aika mukava suorituskyvyn lisäys, kerronpa teille.

Yksinomainen OR (XOR)

Ero XOR:n ja bittikohtaisen OR:n välillä on, että 1:n tuottamiseksi vain yksi bitti parissa voi olla 1:

Esimerkiksi lauseke 138^43 on yhtä suuri kuin...

A 1 0 0 0 1 0 1 0
B 0 0 1 0 1 0 1 1
A^B 1 0 1 0 0 0 0 1

… 10100001 2 tai 160 10

Käyttämällä ^ voit muuttaa kahden muuttujan (joilla on sama tietotyyppi) arvoja ilman väliaikaista muuttujaa.

Voit myös salata tekstiä yksinoikeudella TAI. Tätä varten sinun on vain toistettava kaikki merkit ja ^ ne avainmerkin kanssa. Monimutkaisempaa salausta varten voit käyttää merkkijonoa:

String msg = "Tämä on viesti"; char message = msg.toCharArray(); Merkkijonoavain = ".*)"; Merkkijono salattuMerkkijono = new String(); for(int i = 0; i< message.length; i++){ encryptedString += message[i]^key.toCharArray(); }

XOR ei ole turvallisin salausmenetelmä, mutta se voidaan tehdä osaksi salausalgoritmia.

Bittikohtainen negaatio (EI)

Bittinegataatio kääntää kaikki operandin bitit. Eli siitä, mikä oli 1, tulee 0 ja päinvastoin.

Esimerkiksi tässä on operaatio ~52:

A 0 0 1 1 0 1 0 0
~A 1 1 0 0 1 0 1 1

Tuloksena on 203 10

Bittikohtaista negaatiota käytettäessä tuloksen etumerkki on aina alkuperäisen luvun vastakkainen etumerkki (kun työskennellään etumerkillisten numeroiden kanssa). Ota selvää, miksi näin tapahtuu juuri nyt.

Lisäkoodi

Tässä minun pitäisi kertoa sinulle hieman tavasta esittää negatiivisia kokonaislukuja tietokoneessa, nimittäin näiden kahden komplementtikoodista. Yksityiskohtiin menemättä sitä tarvitaan helpottamaan binäärilukujen aritmetiikkaa.

Tärkein asia, joka sinun tulee tietää kahden komplementin luvuista, on, että merkitsevin bitti on etumerkitty. Jos se on 0, niin luku on positiivinen ja sama kuin tämän luvun esitys suorassa koodissa, ja jos 1, niin se on negatiivinen. Eli 10111101 on negatiivinen luku ja 01000011 on positiivinen luku.

Jos haluat muuntaa negatiivisen luvun sen kahden komplementiksi, sinun on käännettävä kaikki luvun bitit (lähinnä bittikohtaisella negatiivisella negatiolla) ja lisättävä tulokseen 1.

Esimerkiksi, jos meillä on 109:

A 0 1 1 0 1 1 0 1
~A 1 0 0 1 0 0 1 0
~A+1 1 0 0 1 0 0 1 1

Yllä olevalla menetelmällä saadaan kahden komplementtikoodissa -109.
Erittäin yksinkertaistettu lisäkoodin selitys on juuri esitetty, ja kehotan sinua tutkimaan tätä aihetta tarkemmin.

Bitittainen siirto vasemmalle

Bittisiirrot ovat hieman erilaisia ​​kuin aiemmin käsitellyt bittitoiminnot. Bittisuuntainen siirto vasemmalle siirtää operandinsa bittejä N bittimäärä vasemmalle alkaen vähiten merkitsevästä bitistä. Vuoron jälkeiset tyhjät kohdat täytetään nollilla. Se tapahtuu näin:

A 1 0 1 1 0 1 0 0
A<<2 1 1 0 1 0 0 0 0

Mielenkiintoinen piirre vasemmalle siirtymisessä N pisteellä on, että se vastaa luvun kertomista 2 N:llä. Siis 43<<4 == 43*Math.pow(2,4) . Использование сдвига влево вместо Math.pow обеспечит неплохой прирост производительности.

Bitittainen siirto oikealle

Kuten arvata saattaa, >> siirtää operandin bittejä tietyn määrän bittejä oikealle.

Jos operandi on positiivinen, tyhjät tilat täytetään nolilla. Jos työskentelemme aluksi negatiivisen luvun kanssa, kaikki vasemmalla olevat tyhjät kohdat täytetään luvuilla. Tämä tehdään merkin säilyttämiseksi aiemmin selitetyn lisäkoodin mukaisesti.

Koska bittisuuntainen siirto oikealle on päinvastainen operaatio bittisuuntaiselle siirrolle vasemmalle, on helppo arvata, että luvun siirtäminen oikealle N paikan määrällä jakaa myös luvun 2 N:llä. Tämä on jälleen paljon nopeampi kuin normaali jako.

Johtopäätös

Joten nyt tiedät enemmän bittioperaatioista etkä pelkää niitä. Voin olettaa, että et käytä >>1:tä joka kerta, kun jaat kahdella. Bittioperaatiot on kuitenkin hyvä olla arsenaalissasi, ja nyt voit käyttää niitä tarvittaessa tai vastata haastavaan haastattelukysymykseen.

Usein he turvautuvat ns. ongelman pohtimiseen osoittaakseen yksikerroksisten perceptronien rajalliset kyvyt ongelmia ratkaistaessa. XOR – yksinomainen OR.

Tehtävän ydin on seuraava. Looginen funktio XOR on annettu - poissulkeva OR. Se on kahden argumentin funktio, joista kukin voi olla nolla tai yksi. Se ottaa arvon , kun yksi argumenteista on yhtä suuri kuin yksi, mutta ei molempia, muuten . Ongelma voidaan havainnollistaa käyttämällä yksikerroksista, yhden neuronin, kahden sisäänmenon järjestelmää, kuten alla olevassa kuvassa.

Merkitään yksi syöte arvolla ja toinen merkillä, jolloin niiden kaikki mahdolliset yhdistelmät koostuvat neljästä tason pisteestä. Alla oleva taulukko näyttää vaaditun tulon ja lähdön välisen suhteen, jossa tuloyhdistelmät, joiden pitäisi tuottaa nolla tulos, on merkitty ja yksi lähtö on merkitty ja .

Pisteet Merkitys Merkitys Vaadittu tulos
0 0 0
1 0 1
0 1 1
1 1 0

Yksi neuroni kahdella sisäänmenolla voi muodostaa päätöspinnan mielivaltaisen suoran muodossa. Jotta verkko toteuttaisi yllä olevassa taulukossa määritellyn XOR-toiminnon, viiva on sijoitettava siten, että pisteet ovat viivan toisella puolella ja pisteet toisella puolella. Yritettyämme piirtää tällaisen suoran viivan alla olevaan kuvaan olemme vakuuttuneita, että tämä on mahdotonta. Tämä tarkoittaa, että riippumatta siitä, mitkä arvot painotuksille ja kynnyksille on määritetty, yksikerroksinen hermoverkko ei pysty toistamaan XOR-funktion esittämiseen vaadittavaa tulon ja lähdön välistä suhdetta.

XOR-funktio on kuitenkin helppo muodostaa kaksikerroksisella verkolla ja monella tapaa. Tarkastellaanpa yhtä näistä menetelmistä. Modernisoidaan kuvassa olevaa verkkoa lisäämällä toinen piilotettu neuronikerros:

Huomaa se tämä verkko annetaan sellaisenaan, ts. voimme olettaa, että hänet on jo koulutettu. Nuolien yläpuolella olevat numerot osoittavat synaptisten painojen arvot. Aktivointifunktiona käytämme yksittäistä hyppytoimintoa, jonka kynnysarvo on seuraava kaavio:

Sitten tällaisen hermoverkon toiminnan tulos voidaan esittää seuraavan taulukon muodossa:

Pisteet Merkitys Merkitys Vaadittu tulos
0 0 0 0 0 0
1 0 1 1 0 1
0 1 1 0 1 1
1 1 0 0 0 0

Kumpikin ensimmäisen kerroksen kahdesta hermosolusta muodostaa mielivaltaisen suoran muodossa olevan päätöspinnan (jakaa tason kahdeksi puolitasoksi), ja lähtökerroksen neuroni yhdistää nämä kaksi ratkaisua muodostaen päätöspinnan nauhan muoto, joka muodostuu ensimmäisen kerroksen neuronien yhdensuuntaisista suorista viivoista:

Tässä artikkelissa XOR-ongelman ratkaisemiseen käytetty neuroverkko on primitiivinen eikä hyödynnä täysimääräisesti monikerroksisten verkkojen ominaisuuksia. Ilmeisesti monikerroksinen neuroverkot niillä on suurempi esitysvoima kuin yksikerroksisilla vain epälineaarisuuden läsnä ollessa. Ja tässä verkossa käytetään kynnyksen lineaarista aktivointitoimintoa. Tällaista verkkoa ei voi kouluttaa esimerkiksi backpropagation-algoritmin avulla.

Ehdottomasti kaikki digitaaliset mikropiirit koostuvat samoista loogisista elementeistä - minkä tahansa digitaalisen solmun "rakennuspalikoista". Siitä me nyt puhumme.

Looginen elementti- Tämä on piiri, jossa on useita tuloja ja yksi lähtö. Jokainen tulojen signaalien tila vastaa tiettyä signaalia lähdössä.

Mitkä ovat elementit?

Elementti "AND"

Muuten sitä kutsutaan "konjunktoriksi".

Ymmärtääksesi, miten se toimii, sinun on piirrettävä taulukko, jossa luetellaan lähtötilat mille tahansa tulosignaaliyhdistelmälle. Tätä taulukkoa kutsutaan " totuustaulukko" Totuustaulukoita käytetään laajasti digitaalitekniikassa kuvaamaan logiikkapiirien toimintaa.

Tältä "AND"-elementti ja sen totuustaulukko näyttävät:

Koska joudut kommunikoimaan sekä venäläisen että porvarillisen tekniikan kanssa. dokumentaatiossa toimitan elementeille symboliset graafiset symbolit (GID) sekä meidän että muiden standardiemme mukaisesti.

Katsomme totuustaulukkoa ja selvennämme periaatetta aivoissamme. Sitä ei ole vaikea ymmärtää: "AND"-elementin lähdössä oleva yksikkö esiintyy vain, kun yksiköt syötetään molempiin tuloihin. Tämä selittää elementin nimen: yksiköiden on oltava SEKÄ toisessa ja toisessa syötteessä.

Jos katsomme asiaa hieman eri tavalla, voimme sanoa tämän: "AND"-elementin lähtö on nolla, jos nollaa sovelletaan ainakin yhteen sen tuloista. Muistetaan. Jatketaan.

OR-elementti

Toisella tavalla häntä kutsutaan "disjunktoriksi".

Ihailemme:

Jälleen nimi puhuu puolestaan.

Yksikkö näkyy lähdössä, kun yksikköä käytetään yhteen TAI toiseen TAI molempiin tuloihin kerralla. Tätä elementtiä voidaan kutsua myös negatiivisen logiikan "AND"-elementiksi: sen lähdössä esiintyy nolla vain, jos nollia syötetään sekä yhteen että toiseen tuloon.

HUOMAA elementti

Useammin sitä kutsutaan "invertteriksi".

Pitääkö minun sanoa mitään hänen työstään?

NAND-elementti

NAND-portti toimii täsmälleen samalla tavalla kuin JA-portti, vain lähtösignaali on täysin päinvastainen. Jos "AND"-elementillä pitäisi olla "0" lähtö, "AND-NOT"-elementillä pitäisi olla yksi. Ja päinvastoin. Tämä on helppo ymmärtää elementin vastaavasta piiristä:

Elementti "NOR" (NOR)

Sama tarina - "OR"-elementti, jonka lähdössä on invertteri.

Seuraava toveri on hieman ovelampi:
Yksinomainen OR-elementti (XOR)

Hän on tällainen:

Sen suorittamaa toimintoa kutsutaan usein "addition modulo 2". Itse asiassa digitaaliset summaimet on rakennettu näiden elementtien varaan.

Katsotaanpa totuustaulukkoa. Milloin on lähtöyksikkö? Oikein: kun tuloilla on eri signaalit. Toisella - 1, toisella - 0. Niin ovela hän on.

Vastaava piiri on jotain tällaista:

Sitä ei tarvitse opetella ulkoa.

Itse asiassa nämä ovat tärkeimmät loogiset elementit. Ehdottomasti kaikki digitaaliset mikropiirit rakennetaan niiden pohjalta. Jopa suosikki Pentium 4.

Ja lopuksi useita mikropiirejä, jotka sisältävät digitaalisia elementtejä. Mikropiirin vastaavien jalkojen numerot on merkitty elementtien napojen lähelle. Kaikilla tässä luetelluilla siruilla on 14 jalkaa. Virta syötetään jaloille 7 (-) ja 14 (+). Syöttöjännite – katso edellisen kappaleen taulukko.

Ilmaistaan ​​puhekuviolla "joko... tai..." Yhdistelmälause "joko A tai B" on tosi, kun joko A tai B on tosi, mutta ei molempia; V muuten yhdistetty väite on väärä.

Ne. tulos on tosi (yhtä kuin 1), Jos A ei ole yhtä suuri kuin B (A≠B).

Tätä operaatiota verrataan usein disjunktioon, koska ne ovat ominaisuuksiltaan hyvin samankaltaisia ​​ja molemmilla on yhtäläisyyksiä arkipuheen konjunktion "tai" kanssa. Vertaa näiden toimintojen sääntöjä:

1. totta, jos totta tai , tai molemmat kerralla.

2. totta, jos totta tai, Mutta Ei molemmat kerralla.

Toiminta sulkee pois jälkimmäinen vaihtoehto ("molemmat kerralla") ja tästä syystä kutsutaan yksinoikeudeksi "TAI". Epäselvyys luonnollinen kieli tarkoittaa, että konjunktiota "tai" voidaan käyttää molemmissa tapauksissa.

5. Implikaatio (looginen seuraus) muodostetaan yhdistämällä kaksi lausuntoa yhdeksi käyttämällä puhehahmoa "jos ... niin ...".

Tallennus: A®B

Implikaatiooperaatiolla muodostettu yhdistelmäväite on epätosi, jos ja vain jos väärä johtopäätös (toinen väite) seuraa tosi premissistä (ensimmäinen väite).

Ne. jos 1 tarkoittaa 0, niin tulos on 0, muissa tapauksissa - 1.

Esimerkiksi lause "Jos luku on jaollinen 10:llä, niin se on jaollinen 5:llä" on totta, koska sekä ensimmäinen että toinen väite ovat totta.

Väite "Jos luku on jaollinen 10:llä, niin se on jaollinen kolmella" on virheellinen, koska väärä johtopäätös tehdään todellisesta lähtökohdasta.

"Tämä nelikulmio on neliö" (A) Ja "Ympyrä voidaan rajata tietyn nelikulmion ympärille" (IN). Sitten yhdistelmälause kuuluu seuraavasti "Jos annettu nelikulmio on neliö, sen ympärille voidaan piirtää ympyrä."

Tavallisessa puheessa konnektiivi "jos... sitten" kuvaa väitteiden välistä syy-seuraussuhdetta. Mutta loogisissa operaatioissa lauseiden merkitystä ei oteta huomioon. Vain niiden totuus tai valhe otetaan huomioon. Siksi ei pidä hämmentyä sisällöltään täysin riippumattomien lausuntojen muodostamien implikaatioiden "merkittömyydestä". Esimerkiksi näin: "Jos Yhdysvaltain presidentti on demokraatti, niin Afrikassa on kirahveja", "jos vesimeloni on marja, huoltoasemalla on bensiiniä."

6. Ekvivalenssi (looginen yhtäläisyys, ~ º Û) muodostetaan yhdistämällä kaksi lausetta yhdeksi käyttämällä puhehahmoa "...jos ja vain jos..."

Ekvivalenssioperaatiolla muodostettu yhdistelmälause on tosi silloin ja vain, jos molemmat lauseet ovat samanaikaisesti joko epätosi tai tosi.

Esimerkiksi lauseet "Tietokone voi laskea, jos ja vain jos se on päällä" ja "Tietokone ei voi laskea, jos ja vain jos se ei ole päällä" ovat tosia, koska molemmat yksinkertaiset lauseet ovat yhtä aikaa tosia.


Totuustaulukot

Jokaiselle yhdistetylle lauseelle (loogiselle funktiolle) on mahdollista rakentaa totuustaulukko, joka määrittää sen totuuden tai virheellisyyden kaikille mahdollisille yksinkertaisten lauseiden alkuarvojen yhdistelmille.

Totuustaulukko tämä on taulukkonäkymä logiikka piiri(operaatiot), jossa luetellaan kaikki mahdolliset tulosignaalien (operandien) totuusarvojen yhdistelmät sekä lähtösignaalin totuusarvo (operaation tulos) jokaiselle näistä yhdistelmistä.

Pohditaanpa edellä käsiteltyä loogisia operaatioita totuustaulukossa:

Propositioalgebrassa kaikki loogiset funktiot voidaan loogisilla muunnoksilla pelkistää kolmeen perusfunktioon: looginen yhteenlasku, looginen kertolasku ja looginen negaatio.

Osoitetaan, että implikaatiooperaatio A®B vastaa loogista lauseketta:

Operaatio poissulkeva TAI (ei-ekvivalenssi, additio modulo two) on merkitty symbolilla ja eroaa loogisesta TAI vain kun A=1 ja B=1.

Siten kahden lauseen X1 ja X2 eroa kutsutaan lauseeksi Y, joka on tosi silloin ja vain, jos toinen näistä väitteistä on tosi ja toinen epätosi.

Tämän toiminnon määritelmä voidaan kirjoittaa totuustaulukon muotoon (taulukko 6):

Taulukko 6 – "EXCLUSIVE OR" -toiminnon totuustaulukko

Kuten taulukosta 6 voidaan nähdä, elementin toiminnan logiikka vastaa sen nimeä.

Tämä on sama "OR"-elementti yhdellä pienellä erolla. Jos arvo molemmissa tuloissa on yhtä suuri kuin looginen, "EXCLUSIVE OR" -elementin lähtö, toisin kuin "OR"-elementissä, ei ole yksi, vaan nolla.

EXCLUSIVE OR -toiminto itse asiassa vertaa kahta binäärinumeroa osuman saamiseksi.

Jokaista loogista konnektiivia pidetään loogisten lauseiden toimintona ja sillä on oma nimi ja nimitys (taulukko 7).

Taulukko 7 - Loogiset perusoperaatiot

Nimitys

toiminnot

Lukeminen

Toiminnan nimi

Vaihtoehtoiset nimitykset

Negaatio (inversio)

Viiva yläosassa

Konjunktio (looginen kertolasku)

Disjunktio (looginen lisäys)

Jos... sitten

Implisaatio

Silloin ja vain silloin

Vastaavuus

Joko...tai

EXCLUSIVE TAI (lisäys modulo 2)

  1. Loogisten operaatioiden järjestys monimutkaisessa loogisessa lausekkeessa

Inversion, konjunktion ja disjunktion loogisten operaatioiden järjestelmä antaa sinun rakentaa mielivaltaisen monimutkaisia looginen ilmaus.

Loogisen lausekkeen arvoa laskettaessa otetaan käyttöön tietty loogisten toimintojen järjestys.

1. Kääntäminen.

2. Konjunktio.

3. Disjunktio.

4. Implisaatio.

5. Vastaavuus.

Sulkuja käytetään muuttamaan määritettyä toimintojen järjestystä.

  1. Loogiset lausekkeet ja totuustaulukot

    1. Boolen lausekkeet

Jokainen yhdistelmälause voidaan ilmaista kaavan (looginen lauseke) muodossa, joka sisältää loogiset muuttujat, ilmaisevat lausunnot ja merkkejä loogisista operaatioista, ilmaisevat loogisia toimintoja.

Yhdistelmälausekkeen kirjoittamiseksi loogisen lausekkeen muodossa muodollisella kielellä (logiikan algebran kielellä), yhdistetyssä lauseessa on tarpeen tunnistaa yksinkertaiset lausunnot ja loogiset yhteydet niiden välillä.

Kirjoitetaan loogisen lausekkeen muodossa yhdistelmälause ”(2·2=5 tai 2∙2=4) ja (2∙2≠5 tai 2∙ 2 4)".

Analysoidaan yhdistelmälausetta. Se sisältää kaksi yksinkertaista lausuntoa:

A = "2 2 = 5" - epätosi (0),

B = "2 2 = 4" - tosi (1).

Sitten yhdistelmälause voidaan kirjoittaa seuraavassa muodossa:

«( AtaiIN) ja (Ā taiIN)».

Nyt sinun on kirjoitettava lausunto loogisen lausekkeen muodossa ottaen huomioon loogisten toimintojen järjestys. Loogisia operaatioita suoritettaessa määritetään seuraava suoritusjärjestys:

inversio, konjunktio, disjunktio.

Sulkeilla voidaan muuttaa määritettyä järjestystä:

F = (AvIN) & (Ā vIN).

Yhdistelmäväitteiden totuus tai vääryys voidaan määrittää puhtaasti muodollisesti, lausealgebran lakien ohjaamana, viittaamatta lauseiden semanttiseen sisältöön.

Korvataan loogisten muuttujien arvot loogiseen lausekkeeseen ja loogisten perusoperaatioiden totuustaulukoiden avulla saadaan loogisen funktion arvo:

F= (A v B) & ( Ā v B) = (0 v 1) & (1 v 0) = 1 & 1 = 1.

      Totuustaulukot

Taulukoita, joissa loogiset toiminnot heijastavat monimutkaisten lauseiden laskelmien tuloksia alkuperäisten yksinkertaisten lauseiden eri arvoille, kutsutaan totuustaulukoiksi.

Yksinkertaiset lauseet merkitään muuttujilla (esim. A ja B).

Totuustaulukoita rakennettaessa on suositeltavaa noudattaa tiettyä toimintosarjaa:

    on tarpeen määrittää totuustaulukon rivien lukumäärä. Se on yhtä suuri kuin määrä mahdollisia yhdistelmiä loogiseen lausekkeeseen sisältyvien loogisten muuttujien arvot. Jos loogisten muuttujien määrä on yhtä suuri kuin p, Että:

rivien määrä = 2 n .

Meidän tapauksessamme looginen funktio

siinä on 2 muuttujaa ja siksi totuustaulukon rivien lukumäärän on oltava 4;

    on tarpeen määrittää totuustaulukon sarakkeiden lukumäärä, joka on yhtä suuri kuin loogisten muuttujien lukumäärä plus loogisten operaatioiden lukumäärä.

Meidän tapauksessamme muuttujia on kaksi: A ja B, ja loogisten operaatioiden määrä on viisi (taulukko 8), eli totuustaulukon sarakkeiden lukumäärä on seitsemän;

    on tarpeen rakentaa totuustaulukko tietyllä määrällä rivejä ja sarakkeita, nimetä sarakkeet ja syöttää taulukkoon mahdolliset alkuperäisten loogisten muuttujien arvojoukot;

    totuustaulukko on täytettävä sarakkeittain suorittamalla loogiset perusoperaatiot vaaditussa järjestyksessä ja niiden totuustaulukoiden mukaisesti.

Voimme nyt määrittää Boolen funktion arvon mille tahansa Boolen muuttujan arvojoukolle.

Taulukko 8 – Loogisen funktion totuustaulukko

© 2024 ermake.ru - Tietoja PC-korjauksesta - Tietoportaali