2016-09-16 7 views
-1

Ich habe eine Funktion f(a,b,c,d) = b*(a+~c) + d*(a+~b), wo *(AND), +(OR), ~(NOT).Vereinfachen Boolescher Ausdruck

des Distributivgesetzes verwenden, erhalte ich: ba + b~c + da + d~b,

aber die Antwort ist ab + b~c + d~b.

Ich kann nicht herausfinden, wie man die da loszuwerden.

Ich habe versucht, ein a zu bekommen: a(b+d) + b~c + d~b, aber das bringt mich nirgendwohin.

+2

Ich stimme für das Schließen dieser Frage als Off-Topic, weil es keine Programmierfrage ist. Es kann besser für eine andere [se] Seite wie [Math.se] stattdessen geeignet sein. –

+1

Ich stimme für das Schließen dieser Frage als Off-Topic ab, da es sich um boolesche Logik handelt, anstatt über Programmierung oder Codierung. – Pang

+1

Ich stimme ab, diese Frage als off-topic zu schließen, weil es um boolesche Logik geht, nicht um Programmierung. –

Antwort

1

Sie können eine Tabelle mit allen möglichen Werten für jeden Parameter erstellen: [1,0] und beide Ausdrücke berechnen. Wenn Sie zeigen können, dass sie in jedem einzelnen Fall zum selben Ergebnis ausgewertet werden, zeigen Sie, dass sie gleichwertig sind und somit kann die ad gelöscht werden.

Ich werde zeigen, und lassen Sie die Übung ausführen:

enter image description here

1

Die Frage ist also, warum ba + b~c + da + d~b = ab + b~c + d~b.

Der Grund ist einfach, da fügt nichts auf der linken Seite hinzu.

Wenn es wäre, es wäre ein Fall, in dem da = true und ab + b~c + d~b = false. Wenn jedoch da = true, dann d = true und a = true. Wenn b ist auch true, dann ab = true und wir haben nichts an der rechten Seite hinzugefügt. Wenn b = false, dann d~b = true und wir auch nichts hinzugefügt haben.

Es ist in Ordnung, Tabellen oder Transformationsregeln wie Verteilung usw. zu verwenden. Es ist jedoch immer besser zu verstehen, warum zwei Ausdrücke äquivalent sind.

Verwandte Themen