Karnaughdiagram-lösare

Gratis Karnaughdiagram-lösare online: skriv ett booleskt uttryck med två till sex variabler och få dess K-diagram med varje grupp inringad och den minimala summan av produkter eller produkten av summor avläst på det.

Ange ett logiskt uttryck för att analysera det (stöder propositionell logik, boolesk algebra)

Endast på klientsidan - din data lämnar aldrig din webbläsare

Guide

Klicka på en operator för att prova dess exempel i kalkylatorn. Varje operator visar alla sätt du kan skriva den på.

Skriv ett uttryck så lägger den här Karnaughdiagram-lösaren ut dess sanningsvärden på ett Gray-kodat rutnät, ringar in varje grupp som går att slå ihop och läser av den minimala formen på dem. Den tar symboler (¬ ∧ ∨ → ↔) eller vanlig ASCII (!, &, |, ->, <->), täcker två till sex variabler och räknar fram ett exakt minimum, inte bara ett bra. Ingenting laddas upp: diagrammet byggs i din webbläsare.

Så löser du ett Karnaughdiagram

  1. Skriv ditt uttryck i fältet ovan - till exempel (A & B) | (!A & C). Operatortangentbordet infogar symbolerna om du hellre slipper skriva dem.
  2. Lösaren läser ut variablerna ur uttrycket och lägger sanningsvärdena i rutnätet. Axlarna är Gray-kodade (00, 01, 11, 10), så grannrutor skiljer sig i exakt en variabel - och det är just därför en grupp av dem faller samman till en enda term.
  3. Varje färgad ring är en grupp. Peka på eller tryck på en i teckenförklaringen för att lyfta fram den i diagrammet, och lägg märke till dem som är märkta som väsentliga: dem kan ingen minimal form utelämna. En grupp får gå runt kanterna, och en ruta får tillhöra flera.
  4. Läs av den minimala formen under. Växla mellan summa av produkter och produkt av summor, kopiera resultatet, ladda tillbaka det i kalkylatorn, eller exportera diagrammet som LaTeX eller TikZ.

Vad lösaren ger dig

  • Varje grupp inringad och färgad, med de väsentliga markerade och den term var och en lämnar efter sig.
  • En minimal form som verkligen är minimal: täckningen söks exakt, inte girigt vald, så även ett cykliskt diagram kommer ut i kortast möjliga form.
  • Summa av produkter eller produkt av summor - gruppera ettorna eller nollorna - från samma diagram.
  • Diagrammet som LaTeX, antingen som en enkel tabell eller omritat i TikZ med sina ringar och sin teckenförklaring.
  • Även sanningstabellen, egenskaperna och de ekvivalenta formerna, om du öppnar samma uttryck i den fullständiga kalkylatorn.
Öppna logikkalkylatorn

Ett genomräknat exempel

Diagrammet för (((A∧B)∧C)∨((A∧B)∧¬C))∨((¬A∧B)∧C). Tre rutor är sanna och täcks av två grupper om två som överlappar i en av dem - hela metoden i miniatyr: variabeln som växlar inuti en grupp faller bort ur dess term, och en ruta får täckas två gånger.

Karnaughdiagram

Varje färgad grupp täcker en rektangel av sanna rutor. De variabler som ändras inuti en grupp faller bort, så varje grupp lämnar en konjunktion efter sig. Så läser du diagrammet →

Karnaughdiagram med A i raderna och BC i kolumnerna
ABC00011110
0
1
Minimal form
(B ∧ C) ∨ (A ∧ B)

Grupper

Hur många variabler kan ett Karnaughdiagram ha?

Den här lösaren ritar diagram för 2 till 6 variabler. Under 2 finns inget att gruppera; fem och sex ritas som två eller fyra staplade plan, och över 6 är inte heller det längre lättare att läsa än sanningstabellen bredvid. För fler variabler ger kalkylatorns ekvivalenta former dig fortfarande en minimerad DNF.

VariablerRutorRutnät
242 × 2
382 × 4
4164 × 4
5322 × (4 × 4)
6644 × (4 × 4)

Summa av produkter och produkt av summor

Att gruppera de sanna rutorna ger en summa av produkter: en konjunktion per grupp, sammanbundna med ELLER. Att gruppera de falska ger en produkt av summor, med literalerna negerade på vägen ut: en disjunktion per grupp, sammanbundna med OCH. Båda beskriver samma funktion, och vilken som är kortast beror på om ettorna eller nollorna bildar de snyggaste rektanglarna - därför erbjuder lösaren båda och du tar den mindre.

Sanningstabell till UttryckKonvertera valfri sanningstabell till ett logiskt uttryck. Generera booleska formler i Disjunktiv Normalform (DNF) eller Konjunktiv Normalform (KNF) från din anpassade sanningstabell.

Vanliga frågor

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

Hur många variabler kan ett Karnaughdiagram ha?

Den här lösaren ritar diagram för två till sex variabler: två ger ett 2 × 2-rutnät, tre ett 2 × 4, fyra ett 4 × 4. Fem och sex ritas så som läroböckerna ritar dem, som två eller fyra staplade 4 × 4-plan, där rutor på samma plats i angränsande plan räknas som grannar - en grupp som inte nämner de staplande variablerna är samma rektangel på varje plan. Över sex slutar de närheter man måste hålla i huvudet att synas - och det är det enda ett diagram är till för: använd då den minimerade DNF:en bland kalkylatorns ekvivalenta former.

Vad är skillnaden mellan summa av produkter och produkt av summor?

Det är två sätt att läsa samma diagram. Att gruppera de sanna rutorna ger en summa av produkter: en konjunktion per grupp, sammanbundna med ELLER. Att gruppera de falska ger en produkt av summor med negerade literaler: en disjunktion per grupp, sammanbundna med OCH. Båda beskriver samma funktion; vilken som är kortast beror på om ettorna eller nollorna bildar de snyggaste rektanglarna.

Är lösarens svar verkligen den minimala formen?

Ja. De väsentliga primimplikanterna tas först, och resten av täckningen söks uttömmande med branch and bound i stället för att väljas girigt. Det spelar roll på ett cykliskt diagram - ett där ingen grupp är väsentlig - eftersom ett girigt val kan hamna på en täckning som är en term för lång, utan att någonsin säga det. Dominerade rader och kolumner stryks tillsammans med de väsentliga, om och om igen tills tabellen slutar krympa, så de flesta diagram når aldrig fram till sökningen - och det är det som håller ett exakt svar omedelbart även vid sex variabler.

Varför är kolumnerna märkta 00, 01, 11, 10 i stället för 00, 01, 10, 11?

För att det är den ordningen som får diagrammet att fungera. Etiketterna löper i Gray-kod, där två på varandra följande värden skiljer sig i exakt en bit: två grannrutor skiljer sig alltså i exakt en variabel, och en rektangel av lika värden blir därmed en term där den variabeln har fallit bort. I vanlig binär ordning skulle 01 och 10 stå bredvid varandra trots att de skiljer sig i två bitar, och att gruppera dem skulle inte betyda något. Kanterna hänger ihop av samma skäl: första och sista kolumnen skiljer sig också i en bit, så en grupp får löpa ut på ena sidan och fortsätta på den andra.

Kan jag markera rutor som ovidkommande?

Inte direkt: lösaren avbildar ett uttryck, och ett uttryck är sant eller falskt i varje rad - det finns inget tredje värde att skriva. Där en funktion faktiskt struntar i en ingång, skriv in det i formeln så visar diagrammet det: en term som (D | !D) sätter D på diagrammet som en variabel funktionen inte beror på, och så är det färdiga diagrammet för en giltig BCD-siffra byggt.

Se alla frågor