Generator från sanningstabell till uttryck

Klicka resultatkolumnen till den form du behöver, så läser verktyget formeln ur den: den kanoniska DNF:en (summa av produkter), den kanoniska KNF:en (produkt av summor) och den kortaste ekvivalenta formen. Allt körs i din webbläsare, och tabellen du bygger följer med i länken.

Variabler: p, q
pqResultat

Klicka på resultatvärdena för att växla mellan sant (⊤) och falskt (⊥)

Skapat uttryck

Disjunktiv normalform (summa av produkter)
(p ∧ ¬q) ∨ (¬p ∧ q)

Så gör du en sanningstabell till ett booleskt uttryck

Varje sanningstabell är sanningstabellen för någon formel, och två av dem kan läsas direkt ur den - utan algebra och utan gissningar:

  1. Skriv ut alla 2ⁿ rader för dina n variabler och märk ut dem där resultatet är ⊤.
  2. Skriv en minterm för varje ⊤-rad: alla variabler sammanbundna med OCH, negerade där raden gör dem falska. Bind samman mintermerna med ELLER så har du DNF:en.
  3. Skriv en maxterm för varje ⊥-rad: alla variabler sammanbundna med ELLER, negerade där raden gör dem sanna. Bind samman maxtermerna med OCH så har du KNF:en.
  4. Båda formlerna har exakt den tabell du utgick från, så båda är rätt svar. Förenkla efteråt om du vill ha den kortaste.

Minterm

En konjunktion av alla variabler, var och en negerad eller inte, som är sann i exakt en rad i tabellen. DNF:en är disjunktionen av mintermerna för de rader där resultatet är ⊤ - därav en term per ⊤-rad.

Maxterm

En disjunktion av alla variabler, var och en negerad eller inte, som är falsk i exakt en rad i tabellen. KNF:en är konjunktionen av maxtermerna för de rader där resultatet är ⊥ - därav en term per ⊥-rad.

Genomräknat exempel: exklusivt eller

Tabellen ovan är den verktyget öppnar med: p och q, sann i precis de två rader där insignalerna skiljer sig åt.

  • Två rader är ⊤, så DNF:en har två mintermer: (p ∧ ¬q) ∨ (¬p ∧ q)
  • De andra två är ⊥, så KNF:en har två maxtermer: (p ∨ q) ∧ (¬p ∨ ¬q)

Ingen av dem går att korta ned - exklusivt eller behöver verkligen båda termerna - och det är värt att se en gång: den kanoniska formen är inte alltid omvägen. Det är vid en tabell som ”högst ett av p, q, r” som den minimala formen drar ifrån på allvar.

Förstå boolesk syntes

Disjunktiv normalform (DNF)

DNF skriver en formel som ett ELLER av OCH (summa av produkter). För varje rad där resultatet är sant bildas en minterm som binder samman alla variabler med OCH och negerar dem som är falska. Mintermerna binds sedan samman med ELLER till hela uttrycket.

Konjunktiv normalform (KNF)

KNF skriver en formel som ett OCH av ELLER (produkt av summor). För varje rad där resultatet är falskt bildas en maxterm som binder samman alla variabler med ELLER och negerar dem som är sanna. Maxtermerna binds sedan samman med OCH till hela uttrycket.

DNF och KNF jämförda

AspektDisjunktiv normalform (summa av produkter)Konjunktiv normalform (produkt av summor)
Byggs avRaderna där resultatet är ⊤, en minterm varRaderna där resultatet är ⊥, en maxterm var
FormEn disjunktion av konjunktioner: ett ELLER av OCHEn konjunktion av disjunktioner: ett OCH av ELLER
Välj den närDu vill räkna upp de fall som gör formeln sann, eller rita en OCH-ELLER-kretsDu vill ha villkoren som alla måste gälla samtidigt, eller den klausulform en SAT-lösare förväntar sig

Hur stor blir tabellen?

En funktion av n variabler har 2ⁿ rader, så tabellen fördubblas för varje variabel du lägger till: 4 rader vid två variabler, 8 vid tre, 16 vid fyra och 32 vid fem, där det här verktyget stannar. DNF:en tar en term per ⊤-rad och KNF:en en per ⊥-rad, så tillsammans täcker de varje rad exakt en gång - och den ena av dem är alltid den kortare utgångspunkten.

Användningar av syntes ur sanningstabeller

Att gå från sanningstabell till logiskt uttryck är en grundteknik inom datavetenskap och digitalteknik. Verktyget hjälper till med:

  • Konstruktion av digitala kretsar - ta fram booleska ekvationer för grindar ur det önskade sambandet mellan in- och utsignaler
  • Programutveckling - skapa villkorslogik ur en specifikationstabell
  • Studier - lära sig och öva boolesk algebra och satslogik
  • Logisk optimering - jämföra DNF och KNF för att hitta enklare ekvivalenta uttryck

Vanliga frågor

Hitta svar på vanliga frågor om hur Logikkalkylatorn används

Vad gör verktyget från sanningstabell till uttryck?

Det kör kalkylatorn baklänges. Du bestämmer resultatkolumnen i en sanningstabell genom att klicka på varje rad, och verktyget tar fram en formel med exakt den sanningstabellen — på disjunktiv normalform (ett ELLER av OCH) eller konjunktiv normalform (ett OCH av ELLER).

Vad är skillnaden mellan DNF och KNF?

DNF är en summa av produkter: en konjunktion för varje rad där resultatet är sant, sammanbundna med ELLER. KNF är en produkt av summor: en disjunktion för varje rad där resultatet är falskt, sammanbundna med OCH. Båda beskriver samma funktion, så välj den som blir kortast för din tabell — en mestadels falsk kolumn ger en kort DNF, en mestadels sann en kort KNF.

Hur många variabler klarar syntesverktyget?

Upp till fem, vilket är en tabell med 32 rader. Varje variabel du lägger till fördubblar raderna, och bortom fem slutar tabellen vara något man kan fylla i för hand.

Varför är det genererade uttrycket så långt?

En normalform byggs rad för rad, med en term i full bredd för varje rad som ska täckas, så längden följer sanningstabellen snarare än tanken bakom. Den är korrekt av konstruktion, inte kompakt. Vill du korta den öppnar du den i kalkylatorn, som listar ekvivalenta former, däribland en minimerad DNF.

Kan jag få en förenklad version av en formel?

Ja. Skriv in den i kalkylatorn och titta på de ekvivalenta formerna under sanningstabellen. Där finns former som härletts genom omskrivning med de algebraiska lagarna, samt DNF och KNF avlästa ur sanningstabellen tillsammans med en minimerad DNF.

Se alla frågor