Simplifying a Boolean expression for odd parity of four inputs

  • Context: Undergrad 
  • Thread starter Thread starter macca
  • Start date Start date
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
13 replies · 8K views
macca
Messages
1
Reaction score
0
Guys I need help with this problem if you'd be so kind?

Q. Make a circuit comprising four inputs, output is TRUE if an odd number of inputs are TRUE.

My solution => A+B+C+D+ABC+ABD+ACD+BCD

So, how do I simplify that?

Thank you.
 
Mathematics news on Phys.org
macca said:
Guys I need help with this problem if you'd be so kind?

Q. Make a circuit comprising four inputs, output is TRUE if an odd number of inputs are TRUE.

My solution => A+B+C+D+ABC+ABD+ACD+BCD

So, how do I simplify that?

Thank you.

First off, your solution is incorrect, since it would simplify to A+B+C+D.

Secondly, the real solution doesn't simplify using AND or OR gates. (but you can simplify the circuit.)
 
I think he's using + for or, not xor. Silly having 4 ways to write the same thing. :frown:
 
Hurkyl said:
I think he's using + for or, not xor. Silly having 4 ways to write the same thing. :frown:
I thought the symbol for xor is a circle-enclosed plus sign. What "thing" are you talking about?

macca: Draw yourself a Karnaugh map of the circuit behaviour. It shouldn't be too difficult.
 
In logic, xor is [itex]\veebar[/itex]. In circuits, xor is [itex]\oplus[/itex]. In GF(2n), xor is +. In C, xor is ^.
 
Last edited:
Assuming + is OR and multiplication is AND

A+B+C+D+ABC+ABD+ACD+BCD is wrong because:

ABD + ABC = AB(D + C)
A+B+C+D+ABC+ABD+ACD+BCD = A(True + BC + BD + CD) + B(True + CD) + C +D
True+BC+BD+CD = true and True + CD = true
A + B + C + D
If any of them is true...

(A xor BCD) + (B xor ACD) + (C xor ABD) + (D xor ABC)
would make more sense, either one is true or three are true. I'm not sure how to simplify this because.. well I haven't ever "done" boolean math except minimally in programming.
 
The simplest representation for this circuit that I know of is:

[tex]A\oplus(B\oplus(C\oplus D))[/tex]
 
master_coda said:
The simplest representation for this circuit that I know of is:

[tex]A\oplus(B\oplus(C\oplus D))[/tex]

Right, because every true NOTs the final answer (starting with false)... right?
 
Alkatran said:
Right, because every true NOTs the final answer (starting with false)... right?

If you mean what I think you mean, than yes.

Actually, I made it unnecessarily complicated. [itex]A\oplus B\oplus C\oplus D[/itex] does the same thing, now that I think about it. I forgot that xor is associative.
 
master_coda said:
The simplest representation for this circuit that I know of is:

[tex]A\oplus(B\oplus(C\oplus D))[/tex]


This what I meant when I said it could be simplfied. I was trying to give him a push in the right direction without giving him the answer outright, just in case this was a homework assignment.
 
This question has me curious. By putting it into a truth table, then transferring to a K-Map doesn't help. You are unable to make any groups.
So reading directly from the truth table, I end up with:
A'B'C'D + A'B'CD' + A'BC'D' + A'BCD + AB'C'D' + AB'CD + ABC'D + ABCD'

By beginning to group and simplify I get:

[tex] A'B'(C'D+CD') + AB(C'D+CD') + C'D'(A'B+AB') + CD(A'B+AB')[/tex]

[tex] A'B'(C \oplus D) + AB(C \oplus D) + C'D'(A \oplus B) + CD(A \oplus B)[/tex]

[tex] (A \oplus B) + (C \oplus D)[/tex]

As you can see by this, I am not getting down to the simplified answer given by you guys:[tex]A \oplus B \oplus C \oplus D[/tex]

But, I do agree with you answer, because when I figure a truth table using your answer, I get the desired output results of true when there are an odd number of true inputs.

How would one go about simplifying this step by step?
Where did I make an error in my algebra?
 
paul11273 said:
[tex] A'B'(C'D+CD') + AB(C'D+CD') + C'D'(A'B+AB') + CD(A'B+AB')[/tex]

[tex] A'B'(C \oplus D) + AB(C \oplus D) + C'D'(A \oplus B) + CD(A \oplus B)[/tex]

[tex] (A \oplus B) + (C \oplus D)[/tex]

The third line does not follow from the second. You should instead be getting:

[tex] (AB+A'B')(C \oplus D) + (A \oplus B)(CD+C'D')[/tex]

[tex] (A \oplus B)'(C \oplus D) + (A \oplus B)(C \oplus D)'[/tex]

[tex] (A \oplus B)\oplus(C \oplus D)[/tex]
 
XOR gives 1 when odd number of inputs are high ... (works for n number of inputs and its bcos as noticed by master coda ... XOR is associative)

-- AI
 
Cool, I now see where my error was. Thanks master_coda.