[Swift] 16가지 논리 결합기

14889 단어 XcodeSwiftiOS
두 개의 브리치 논리 연산을 취하는 논리적 결합자
풀이 방법은 16가지(2의 4차원)가 있기 때문에 Swift로 표현해 보세요.

모순


func contradiction(p: Bool, q: Bool) -> Bool {
    return false
}

화영닌자


func tautology(p: Bool, q: Bool) -> Bool {
    return true
}

명제 P


func propositionP(p: Bool, q: Bool) -> Bool {
    return p
}

부정P


func negationOfP(p: Bool, q: Bool) -> Bool {
    return !p
}

명제


func propositionQ(p: Bool, q: Bool) -> Bool {
    return q
}

부정


func negationOfQ(p: Bool, q: Bool) -> Bool {
    return !q
}

논리적


func conjunction(p: Bool, q: Bool) -> Bool {
    return p && q
}

부정 논리적


func alternativeDenial(p: Bool, q: Bool) -> Bool {
    return !p || !q
}

논리 및


func disjunction(p: Bool, q: Bool) -> Bool {
    return p || q
}

부정 논리와


func jointDenial(p: Bool, q: Bool) -> Bool {
    return !p && !q
}

뜻하지 않다


func materialNonInplication(p: Bool, q: Bool) -> Bool {
    return p && !q
}

부정적 의미 (조건 표현식)


func materialInplication(p: Bool, q: Bool) -> Bool {
    return !p || q
}

도리어 뜻이 아니다


func converseNonImplication(p: Bool, q: Bool) -> Bool {
    return !p && q
}

반의


func converseImplication(p: Bool, q: Bool) -> Bool {
    return p || !q
}

다른


func exclusiveDisjunction(p: Bool, q: Bool) -> Bool {
    return (p && !q) || (!p && q)
}

등가(충분한 필요조건)


func biconditional(p: Bool, q: Bool) -> Bool {
    return (p && q) || (!p && !q)
}

비동기 연산자


독점 논리와 연산자를 정의하려고 시도했습니다.
비트 연산에는 ^ 연산자가 있기 때문에 ^ 을 사용했습니다.
또한 우선순위는 비트 연산을 배우는 것으로 ‖와 같은 110으로 설정했다.
infix operator ^^ { associativity left precedence 110 }
func ^^ (lhs: Bool, rhs: Bool) -> Bool {
    return exclusiveDisjunction(p: lhs, q: rhs) // または (p && !q) || (!p && q)
}
실행 결과
true ^^ true   // false
true ^^ false  // true
false ^^ true  // true
false ^^ false // false

끝내다


그것은 그다지 실용적이지 않다😊
gist→ https://gist.github.com/KentaKudo/f68bbfadb4169ab1e46519ff399b30dd

참고 자료


https://ja.wikipedia.org/wiki/논리 연산#.E8.AB.96.E7.90.86.E7.B5.90.E5.90.88.E5.AD.90
http://qiita.com/KentaKudo/items/a1dd2eb0bf37302c1c81
https://en.wikipedia.org/wiki/Truth_function#Table_of_binary_truth_functions

좋은 웹페이지 즐겨찾기