2009-05-31 2 views
1

이의 당신이 부울 규칙이 있다고 가정 해 봅시다/표현 OR이 줄어들어리팩토링 부울 식

(A AND D AND F) OR (A AND E AND F) OR (...) 

이렇게 할 부울 대수에 속성이 있습니까?

답변

3

:로

(A+B) => (A'B')' 

그래서 당신은 당신의 식을 다시 작성할 수 있습니다.

당신이해야 할 일은 그것을 연속적으로 적용하는 것입니다. 예를 들어, x*(y+z) = (x*y)+(x*z)를 사용하여 (여기서 *은 AND을 나타내며 + OR를 의미) :

0. (A + B) * (D + E) * F 
1. Apply to the first 2 brackets results in ((A+B)*D)+((A+B)*E) 
2. Apply to content of each bracket results in (A*D+B*D)+(A*E+B*E) 
3. So now you have ((A*D+B*D)+(A*E+B*E))*F 
4. Applying the law again results in (A*D+B*D)*F+(A*E+B*E)*F 
5. Apply one more time results in A*D*F+B*D*F+A*E*F+B*E*F, QED 
+0

+1, 정답입니다. – RBarryYoung

5

DeMorgan's 정리해보기. 이 링크는 전자 게이츠와 관련된 문서를 가리키고 있지만 이론은 동일하게 유지됩니다.

그것은 논리적 이진 표현이 변경되지 말한다 우리가

  1. 변경 그들의 보완에 모든 변수를 경우.
  2. 모든 AND 연산을 OR로 변경하십시오.
  3. 모든 OR 연산을 AND로 변경하십시오.
  4. 전체 식을 보완하십시오. 내가 부울 대수 만에 AND 및 OR 작업을 만들 수 없습니다 알고

지금까지

+0

DeMorgan의 리팩토링을 사용하여 질문에서 리팩토링을 수행하는 방법을 알 수 없습니다. 해결 된 솔루션을 제공해 주시겠습니까? – freespace

+0

쉽지 않습니다. De Morgan 's는 동일한 궁극적 인 결과를 유지하면서 부울 표현식을 변환하는 방법을 알려줍니다. 위의 경우 2 단계와 3 단계를 사용하여 AND를 최대화하도록 표현식을 변환할지 여부를 결정할 수 있습니다 (예 : OR이 아닌 AND가 더 많습니까?) –

+0

DeMorgan의 정리는 즉시 적용 할 수 없습니다. –

0

를 (위의 링크 된 문서에서 인용). 이 두 가지 작업 만 수행하면 NOT 작업을받을 수 없습니다.

모든 표현식을 풀 세트 개의 부울 연산으로 변환 할 수 있습니다. 여기

일부 풀 세트입니다 : 당신이 NOT 연산을 사용할 수 있습니다 가정

  • AND와 NOT
  • OR 및 NOT
+0

사실,하지만 물어 본 내용이 아닙니다. –

0

만 만 AND 연산 또는 어떤 부울 식을 다시 작성할 수 있습니다 OR. (. 또는 아무것도) 귀하의 경우 :

(A OR B) AND (D OR E) AND F 

나는 위 및 쓰기에 대한 엔지니어링 속기를 사용하는 경향이

  • 및 제품으로,
  • 또는 OR (+); 및
  • 작은 따옴표 (')가 아닙니다.

그래서 : 산술에

(A+B)(D+E)F 

추론은 실제로 용어를 인수 분해에 매우 유용합니다.De Morgan's Law으로

: here을 같이 귀하의 예는, AND 이상의하여 분배 법칙을 이용 OR있다

(A+B)(D+E)F 
(A'B')'(D'E')'F 
2

당신은 약 Karnaugh maps 독서에 관심이있을 수 있습니다. 부울 표현식을 단순화하는 도구이지만 개별 표현식을 모두 결정할 때 사용할 수 있습니다. 나는 이것을 당신이 비록 프로그램을 작성할 수있는 알고리즘으로 일반화 할 수있을 지 모르겠습니다.