60044

Boolean Logic Design - Reduction

I have the following function to be reduced/simplified.

F(A,B,C,D) = BC + (A + C'D') where ' denotes the complement

Here's my solution: = BC + (A + C'D')' = BC + (A + (C+D) = BC + (A + C + D) = BC + C + A + D = C(B + 1) + A + D = C*1 + A + D = C + A + D

Is this correct?

Answer1:

As in traditional algebra, if you do something to one side of the equation, you must do it to the other side, including complementing. Here we state the original equation:

F'(A,B,C,D) = BC + (A + (CD)')

Since we have F' instead of F, my intuition tells me to complement both sides, but first I distribute the complement in the term (CD)' to make life easier in the long run:

F' = BC + (A + (C'+ D'))

Now we can complement both sides of the equation:

1: F = '(BC)'(A + (C'+ D')) The OR becomes AND after distributing complement

Now let's distribute the complements inside just to see what we get:

2: F = (B'+ C')(A'(CD))

Now we can just distribute the right term (A'(CD)) over the two terms being OR'ed:

3: F = B' (A'(CD)) + C' (A'(CD))

We see that the right term goes away since we have a CC' and thus we are left with:

4: F = A'B'CD

Hopefully I didn't make a mistake. I know you've found the answer, but others reading this might have a similar question and so I did it out to save duplicate questions from being asked. Good Luck!

Recommend

  • How do I create a type alias for an array of char with a fixed size?
  • Box-shadow on 3 of four sides of div
  • Sticky footer doesn't reach the right and left sides of browser window
  • Find a value in array
  • How do I determine the bias of an algorithm?
  • Until statement not working on simple code [closed]
  • Boolean Logic Design - Reduction
  • Adjust cell width in grouped UITableView
  • PopOver auto adjust placement
  • How to avoid truncated bubbles when elasticX or elasticY
  • Why is git giving me a “deleted merge conflict” when both sides are deleted?
  • (XCode 4.0.2) Archive build (build for distribution on app-store) armv6 warning
  • Replacing parts of expression in prolog
  • How to build a 64-bit .NET DLL, with 64-bit COM interop?
  • iOS client server approach
  • Question regarding the ExtJS License [closed]
  • Double plus sign for the last line in git-diff of merge
  • Renamed directory, now SVN not allowing me to commit
  • How to set my Name in smack?
  • Retrieving a double from a JTextArea while solving for X
  • How can I count unique terms in a plaintext file case-insensitively?
  • why calling cd shell command through system() or execvp() from a child process won't work?
  • what does prefix @- mean in makefile?
  • How Get arguments value using inline assembly in C without Glibc?
  • Image map in Flex
  • How to make R's read_csv2() recognise the text characters properly
  • Who propagate bugfixes across branches (corporate development)?
  • npm 5.4.1 install/uninstall all failing
  • Dynamically switching connect in Modelica
  • xcode don't localize specific strings
  • Implementation of State Monad
  • uniform generation of points on 3D box
  • How do I superscript characters in a UIButton?
  • How do I pass the string value parameter of the selected list item from an auto-populated dropdown l
  • Allowing both email and username for authentication
  • jQuery .attr() and value
  • ilmerge with a PFX file
  • Azure Cloud Service Web Role web pages do not load
  • Revoking OAuth Access Token Results in 404 Not Found
  • Running Map reduces the dimensions of the matrices