| English | 의미 |
|---|---|
| equivalent/ɪˈkwɪvələnt/ | 동치 |
| De Morgan's Laws/də ˈmɔːɡənz lɔːz/ | 데摩根의 법칙 |
하나의 반례가 부등식 재작성을 무효화합니다
- 제안된 재작성은 !(a && b)를 !a && !b로 바꿉니다. a = true이고 b = false라고 설정하십시오.
- 원본은 참이지만, 제안된 재작성은 거짓입니다. 드摩根 법칙에서는 !a || !b가 필요하며, 이는 원본과 일치합니다.
두 조건이 동일한 의미일 때
- 두 부울表达式(Bool expressions)가 모든 입력에 대해 동일한 결과를 산출하면 등가(equivalent) 입니다. 정수
x에 대해,x >= 5과!(x < 5)는 등가합니다. 즉,x이 적어도5일 때 정확히 참이 됩니다. - 부등변수에 부작용이 없는 경우, 동일한 식은 같은 결과를 냅니다. 또한 메서드를 호출하거나 상태를 변경하는 식인 경우 평가 순서를 확인해야 합니다. 진리표는 동일성을 증명합니다: 모든 행에서 출력이 동일합니다.
드 모르根的 법칙
- 드摩根의 법칙은 AND/OR 위의 NOT을 재작성합니다:
!(a && b)은!a || !b와 같습니다. !(a || b)은!a && !b과 같습니다. 패턴은!를 안으로 밀어 넣고,&&↔||를 반전하는 것입니다.
조건 간소화
- 드摩根의 법칙과 논리 규칙을 사용하여 더 짧고 명확한 동등식을 작성하세요. 점수(int) 변수 score의 경우,
!(score < 60)을score >= 60로 바꿀 수 있습니다—의미는 같지만 가독성이 향상됩니다. - 이중 부정제나 외부
!제거는 의도를 명확하게 합니다. 정확한 입력 영역과 평가 동작을 확인하십시오; 문자 수가 적다고 해서 버그가 적다는 보장은 없습니다.
데摩根의 법칙에 따라, !(a && b)는 ...와 동등합니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
!를 안으로 밀어 넣고 &&를 ||로 바꿉니다.
데摩根의 법칙에 따라, !(a || b)는 ...와 동등합니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
!를 안으로 밀어 넣고 ||를 &&로 바꿉니다.
정수 점수(score)에 대해 !(score < 60)와 동일한 조건은 무엇입니까?
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
not-less-than-60 means at-least-60.
두 부울리안 식이 모든 입력에 대해 동일한 결과를 내면 등가합니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
진리표의 모든 행에서 동일한 출력이 나옴 = 등가.
데摩根의 법칙을 적용하면, !(a && b)는 !a && !b가 됩니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
!a || !b가 됩니다 — 연산자가 반드시 바뀌어야 합니다.
진리표를 이용한 테스트
- 두 식이 동일한지 확인하려면 모든 입력에 대해 표를 작성하십시오. 모든 행이 일치하면 동일하고, 단 하나의 불일치가 있다면 동일하지 않습니다.
- 순수 부등변수 두 개에는 네 개의 입력 행이 있어 진리 함수를 완전히 결정합니다. 그러나 임의의 메서드 호출의 영향은 열거하지 않으며, 부동소수점 비교의 모든 재작성을 증명하지도 않습니다.
De Morgan의 법칙을 적용할 때는 !를 분배할 뿐만 아니라 연산자도 반대로 바꿔야 합니다. !(a && b)는 !a || !b(AND가 OR로) — !a && !b를 쓰는 것은 틀린 것입니다. 기억법: NOT을 안으로 밀어 넣고 && ↔ ||를 바꿉니다. 확신이 없을 때는 진리표로 네 행만 확인하면 해결됩니다.
a=true이고 b=false일 때, !(a && b), !a && !b, !a || !b의 값은 순서대로 무엇입니까?
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
The mismatching middle expression is a counterexample to the proposed equivalence.
double 점수(score)가 NaN인 경우, !(score < 60) and score >= 60 return)는 동일한 부울 결과를 반환합니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
NaN에 대한 비교 score < 60 and score >= 60는 모두 거짓이므로, negated 첫 번째 식은 true이고 두 번째 식은 false입니다.
f()가 false를 반환할 때, !(f() && g())를 평가하는 동안 g()은 몇 번 실행됩니까?
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
거짓인 첫 번째 피연산자가 && 연산자의 단락 Evaluat(Short-circuit)을 유발하므로 g()은 호출되지 않습니다. 등가식 !f() || !g() 역시 g()을 건너뜁니다.
!(a && b)를 다시 쓸기:
- 틀림:
!a && !b. - 올바름 (De Morgan):
!a || !b— AND가 OR로 바뀜. - 확인:
a = true, b = false라면!(true && false) = !false = true이고,!a || !b = false || true = true입니다. ✓
추론을 새로운 사례로 확장하기
- 순수 부등변수의 경우 네 개의 입력 쌍이 모두 동일함을 증명합니다. 드摩根의 형식은 좌우 단축評価(short-circuit evaluation)를 유지하므로, f가 거짓이면 g를 건너뛰는
!(f() && g())과!f() || !g()모두 해당합니다. - 피연산자의 위치를 바꾸는 것은 다른 변환입니다. 순수 변수에 대해
a && b과b && a는 동일한 진리표를 가지지만,f() && g()와g() && f()는 서로 다른 메서드를 호출할 수 있습니다. double 점수=NaN인 경우,!(score < 60)는 참이지만score >= 60는 거짓입니다. 정수 비교 규칙은 NaN까지 확장되지 않습니다.
두 부호식(Boolean expression)은 모든 입력에 대해 결과가 같을 때 **동등(equivalent)**하다고 합니다(진리표로 증명 가능). De Morgan의 법칙: !(a && b) = !a || !b 및 !(a || b) = !a && !b — !를 안쪽으로 밀어 넣고 && ↔ ||를 바꿉니다. 이를 활용해 조건을 더 명확하고 동등한 형태로 간소화할 수 있습니다.