2013-02-15 6 views
93

Ich habe alten Code refactoring und stieß auf mehrere IF-Bedingungen, die viel zu komplex und lang waren, und ich bin mir sicher, dass sie vereinfacht werden können. Meine Vermutung ist, dass diese Bedingungen aufgrund späterer Änderungen so sehr zugenommen haben.Gibt es irgendwelche guten booleschen Ausdruck Simplikatoren da draußen?

Wie auch immer, ich fragte mich, ob jemand von euch von einem guten Online-Simplifier weiß, den ich benutzen kann. Ich bin nicht daran interessiert, in einer bestimmten Sprache, nur einen Vereinfacher, die zum Beispiel nehmen in würden:

(! (A oder B) und (B und C) oder C)

Und gib mir eine vereinfachte Version des Ausdrucks, falls vorhanden.

Ich habe mir die anderen ähnlichen Fragen angeschaut, aber keine weist mich auf einen guten Simplifier hin.

Danke.

+0

WolframAlpha kommt auch bei * C * an. Keine zusätzlichen Tore ... –

+0

Es gibt ein nettes Online-Tool - http://tma.main.jp/logic/index_en.html –

Antwort

81

Sie können Wolfram Alpha versuchen, wie in diesem Beispiel auf Ihrer Eingabe basiert:

http://www.wolframalpha.com/input/?i=((A%20OR%20B)%20AND%20(NOT%20B%20AND%20C)%20OR%20C)&t=crmtb01&f=rc

+2

Die Website scheint nicht so gut zu sein, um Boolesche Formeln zu vereinfachen, wenn sie etwas komplexer werden. Versuchen Sie dieses: (((NICHT C) UND (NICHT A)) ODER ((NICHT B) UND (NICHT C) UND (NICHT D) UND (NICHT A)) ODER ((NICHT B) UND (NICHT C) UND D UND A) ODER (B UND C UND (NICHT D) UND (NICHT A)) ODER (B UND C UND D UND A)) –

+1

In der Tat. Seltsam. Es barf sogar in der vereinfachten Version "NICHT C UND NICHT A ODER NICHT B UND NICHT C UND NICHT D UND NICHT A ODER NICHT B UND NICHT C UND D UND A ODER B UND C UND NICHT D UND NICHT A ODER B UND C UND D UND A'. –

+2

Beachten Sie, dass wenn Sie die Wahrheitstabelle, die für einige Ausdrücke nicht immer outputed ist, die Abfrage mit den Worten "Wahrheitstabelle" gefolgt von dem Ausdruck – Belgi

14

Versuchen Logic Friday 1 Es enthält Tools von der Universität von Kalifornien (Espresso und misII) und macht sie mit einer GUI nutzbar. Sie können boolesche Gleichungen und Wahrheitstabellen wie gewünscht eingeben. Es verfügt auch über einen grafischen Gate-Diagramm-Eingang und -Ausgang.

Die Minimierung kann zweistufig oder mehrstufig durchgeführt werden. Die zweistufige Form ergibt eine minimierte Summe von Produkten. Die mehrstufige Form erzeugt eine Schaltung, die aus logischen Gattern besteht. Die Arten von Toren können vom Benutzer eingeschränkt werden.

Ihr Ausdruck vereinfacht sich zu C.

+2

Für ein schnelles Online-Tool ist das wirklich hilfreich: http://tma.main.jp/logic /index_de.html –

5

Ich fand, dass The Boolean Expression Reducer viel einfacher ist Freitag zu verwenden, als Logic. Plus erfordert keine Installation und ist Multi-Plattform (Java).

Auch in Logic Friday gibt der Ausdruck A | B nur 3 Einträge in Wahrheitstabelle zurück; Ich erwartete 4.

+3

Aktivieren Sie die Option "Truthtable/Show all Rows" in Logic Friday 1. Sonst , Sie erhalten nur alle Zeilen mit dem Ausgabewert 1. –

+1

Intern verwendet bexpred einfache Algorithmen, um Minterms zusammenzuführen. Es könnte für kleine Ausdrücke hilfreich sein, ist aber definitiv nicht auf dem neuesten Stand der Technik. –

+2

Für Eingabe "A \ * B \ * (! A \ * B +! A \ *! B") gibt dieses jar SOP False, aber POS True zurück. Nicht genau zuverlässige Skript ... – Evil