0

is it possible to simply this Boolean function

(!A*!B*!C) + (!A*!B*C*!D) + (A*!B*!C*D) + (A*!B*C*!D) + (A*B*!C*!D) 
4

2 回答 2

2

I came up with this:

(!B*(!A*(!C+!D))+A*(C XOR D)) + (A*B*!C*!D)

Messy to look at, but there are fewer terms.

于 2012-10-07T01:29:15.103 回答
2

Look at the truth table:

A B C D X
0 0 0 0 1
0 0 0 1 1
0 0 1 0 1
0 0 1 1 0
0 1 0 0 0
0 1 0 1 0
0 1 1 0 0
0 1 1 1 0
1 0 0 0 0
1 0 0 1 1
1 0 1 0 1
1 0 1 1 0
1 1 0 0 1
1 1 0 1 0
1 1 1 0 0
1 1 1 1 0

It looks like you can take the three parts of the table where X = 1 and simplify this to the sum of three terms:

!A*!B*!(C*D) + A*!B*(C^D) + A*B*!C*!D

Note that I've use XOR (^) in the second term. If you can't use XOR then you'll need to expand the second term a little.

You can reduce the number of terms further by factoring out either !B or A for two of the terms, e.g.

!B*(!A*!(C*D) + A*(C^D)) + A*B*!C*!D

or:

!A*!B*!(C*D) + A*(!B*(C^D) + B*!C*!D)
于 2012-10-07T01:29:26.470 回答