2013-05-15 4 views
0

왜이 두 문장이 서로 다른지 설명 할 수 있습니까?그렇지 않다면 (a와 b가 아님) if (a와 b가 아님)

if not(a and not b): 
// do some stuff 


if (not a and b): 
// do some stuff 

첫 번째 문장을 두 번째 문장으로 변경하여 프로그램을 더 이해하기 쉽도록 만들었지 만 작동하지 않습니다. 나는 왜 그런지 완전히 이해하지 못한다.

+0

두 가지 : 1)의 우선 순위 확인 서로 다른 논리 연산자는 당신이 생각하는 것입니다 (왼쪽 대 오른쪽 연관을 포함하여). 2) 정말로 혼란 스러우면, 진리표 (모든 가능한 입력에 대한 결과)를 만드십시오. 확인하고 비교하십시오. – Patashu

+0

진실 표를 반복하는 프로그램을 작성하는 것이 더 쉽습니다. –

답변

5
당신은 입니다 절반의 드 모건의 Thereom로 보일 것입니다

(A) :

not(p and q) -> not(p) or not(q) 

R 상황, 그냥 not(b)aqp 교체 :

not(a and not b) -> not(a) or not(not(b)) 
       -> not(a) or b 

(A) 나머지 절반은 다음과 같습니다

not(p or q) -> not(p) and not(q) 
1

은 내가 작성한 내용이 아닌 if (not a) or b과 동일합니다.

+0

어떻게 알게 되었습니까? 다시 쓰는 규칙이 있습니까? –

+1

@ 9-bits - 예 규칙은 De Morgan의 법칙입니다. - http://en.wikipedia.org/wiki/De_Morgan's_laws – shf301

1

는 또한 '과'을 '또는'인해 De Morgan's law

if not(a and not b) 

이된다 플립 필요

if (not a or b) 
+0

'morgan의 법으로 인해' – Bill

+1

@bill done, cheers – Craig

관련 문제