안녕하세요 @tmkor 입니다. 오늘은 필요충분조건에 대하여 알아보려 합니다.
∀ x in U : p(x) -> q(x) 이 경우 화살표를 두줄로 그린다. p(x) ⇒ q(x)
p⇒q이고 q⇒p이면 p⇔q로 나타낸다. 이 경우 p와 q는 서로 필요충분조건(if and only if)이라고 말한다. 이 경우 p와 q의 진리여부는 같다.값을 가질때 사용한다. f(x) ≡ g(x)는 "대상 영역의 모든 x에 대하여 f(x)=g(x)가 성립한다"를 의미한다.from functools import reduce
def p(n):
return n*n % 2 == 1
def q(n):
return n % 2 == 1
def oddImplication(n):
Cpq = {True:q(n), False:True}[p(n)]
return Cpq
def oddReverseImplication(n):
Cqp = {True:p(n), False:True}[q(n)]
return Cqp
def universal(predicate, domain):
return reduce(lambda x,y:predicate(x)&predicate(y), domain)
tv1 = universal(oddImplication, range(1,100))
tv2 = universal(oddReverseImplication, range(1,100))
print("p(n) => q(n) : %s" % tv1)
print("q(n) => p(n) : %s" % tv2)
if tv1 & tv2:
print("필요충분조건")
결과
필요충분조건