(이것은 당신의 의견에 직접 답하고, 사이드 가지 주요 질문에 대답합니다. 원하는 단순화 표현을 얻을. 짧은에, 다른 방법을 사용)
당신은 복잡한 표현을 가지고, 하나는 5 개의 논리 변수만을 사용합니다. 이 문제는 단지 2^5 = 32 행을 갖는 진리표를 만드는 것이 훨씬 쉽습니다. 결과를보고이를 사용하여 단순화 된 동일한 표현을 작성할 수 있습니다. 이것은 원래 질문에서 요구하는 "법칙 및 속성"을 사용하지 않지만 불리언 표현을 단순화하는 표준 기술입니다.
거의 모든 Discrete Mathematics 클래스에서 진리표를 만드는 법을 배웠어야합니다. 간단히 말하자면 각 행의 각 요소가 (True
) 또는 F
(False
) 인 테이블을 만듭니다. 행에는 Ts와 Fs의 가능한 모든 조합이 포함됩니다. 5 개의 변수에 대해 2^5 = 32 행을 사용합니다. 각 행에 대해 첫 번째 값을 A에 할당하고 두 번째 값을 B에 할당합니다. 그런 다음 해당 값의 표현식을 평가하고 행 끝에 결과를 씁니다.
이것은 손으로 할 수 있지만 표현식이 복잡하기 때문에 충분히 피할 수 있습니다. 다음은 원하는 테이블을 인쇄하는 Python 3 스크립트입니다. 파이썬에는 Ts와 Fs의 모든 가능한 조합을 얻는 것을 단순화하는 product()
함수가 있습니다. 이 스크립트는 B[]
을 사용하여 부울 값을 단일 문자 T
또는 F
으로 변환합니다.
from itertools import product
"""Make a truth table for the Boolean expression
A.!B.E + !(B.C).D.!E + !(C.D).E+!A.D.!E + A.!(C.D).E + A.E + A.B.!E + !(A.C) + B.C.!D
"""
B = ('F', 'T')
print('A B C D E : Result')
print('- - - - - : ------')
for a, b, c, d, e in product((True, False), repeat=5):
print(B[a], B[b], B[c], B[d], B[e], end=' : ')
print(B[
(a and not b and e)
or (not (b and c) and d and not e)
or (not (c and d) and e)
or (not a and d and not e)
or (a and not (c and d) and e)
or (a and e)
or (a and b and not e)
or (not (a and c))
or (b and c and not d)
])
다음은 결과입니다 :
A B C D E : Result
- - - - - : ------
T T T T T : T
T T T T F : T
T T T F T : T
T T T F F : T
T T F T T : T
T T F T F : T
T T F F T : T
T T F F F : T
T F T T T : T
T F T T F : T
T F T F T : T
T F T F F : F
T F F T T : T
T F F T F : T
T F F F T : T
T F F F F : T
F T T T T : T
F T T T F : T
F T T F T : T
F T T F F : T
F T F T T : T
F T F T F : T
F T F F T : T
F T F F F : T
F F T T T : T
F F T T F : T
F F T F T : T
F F T F F : T
F F F T T : T
F F F T F : T
F F F F T : T
F F F F F : T
우리는 결과가 항상 한 줄 T F T F F
을 제외하고 T
인 것을 알 수있다. 즉, A가 True, B가 False, C가 True, D와 E가 False가 아닌 한 표현식이 참임을 의미합니다. 그래서 우리는
!(A.!B.C.!D.!E)
에 드 모르 강의 법칙의 간단한 사용을 (당신의 표기법 사용) 표현식을 단순화 할 수 정규형이 변경 :
!A + B + !C + D + E
당신이 원하는 것입니다.
"법률 및 재산"을 사용해야합니까? 이 경우 32 열만있는 진리표를 만드는 것이 훨씬 쉬울 것입니다. 귀하의 최종 표현이 정확하다면, 단 하나의 예외를 제외하고 테이블은 모든 Trues에서 끝납니다. 그것과 동등한 표현을 만드는 것은 사소한 일이다. –
예 @RoryDaulton,이 긴 표현을 단순화하기 위해 단순화의 모든 단계를 작성해야합니다. 음, 진실성 표를 어떻게 만들어야하는지 나에게 말해 줄 수 있니? 그리고 그 표현은? 그리고 변수에 대한 입력은 무엇입니까? 단순화 된 표정은 진실 표에서 어떻게 생성됩니까? –