【程序员的数学】关于几种逻辑

基本概念:

逻辑是消除歧义的工具,在编程过程中发挥着重要的作用。在考虑的过程中,确认是否有“遗漏”(完整性)和“重复”(排他性)是相当重要的。

命题:能够判断对错的陈述句。

逻辑非:不是A( not  A)

A 【程序员的数学】关于几种逻辑A
true false
false true

双重否定(等于肯定):不是 不是A(not not A)

A 【程序员的数学】关于几种逻辑A 【程序员的数学】关于几种逻辑【程序员的数学】关于几种逻辑A
true false true
false true false

逻辑与:A并且B(A and B)

A B A  【程序员的数学】关于几种逻辑 B
true true true
false true false
true false false
false false false

逻辑或:A或者B(A or B)

A B 【程序员的数学】关于几种逻辑 B
true true true
false true true
true false true
false false false

异或:A或者B(但不都满足)

A B A  【程序员的数学】关于几种逻辑  B
true true false
true false true
false true true
false false false

相等:A和B相等

A B A=B
true true true
false true false
true false false
false false true

蕴涵:若A则B

A B A【程序员的数学】关于几种逻辑B
true true true
true false false
false true true
false false true

注意,生活中提到的如果A是真的,B也是真的A是假的,B也是假的。体现的是逻辑A=B。

这里提到的A【程序员的数学】关于几种逻辑B是指如果A是真的,B也是真的如果A是假的,B是真是假都可以,不受影响。

德摩根定律:

【程序员的数学】关于几种逻辑A)【程序员的数学】关于几种逻辑【程序员的数学】关于几种逻辑B)=【程序员的数学】关于几种逻辑(A  【程序员的数学】关于几种逻辑 B)

 (【程序员的数学】关于几种逻辑A)【程序员的数学】关于几种逻辑【程序员的数学】关于几种逻辑B)=【程序员的数学】关于几种逻辑(A  【程序员的数学】关于几种逻辑 B)

三值逻辑:包括未定义(undefined)的逻辑。

带条件的逻辑与:(A && B)

A B A&&B
true true true
true false false
true undefined undefined
false true false
false false false
false undefined false
undefined true undefined
undefined false undefined
undefined undefined undefined

注意,不包含undefined时,A&&B和A【程序员的数学】关于几种逻辑B相等。

 

带条件的逻辑或:(A || B)

A B A  || B
true true true
true false true
true undefined true
false true true
false false false
false undefined undefined
undefined true undefined
undefined false undefined
undefined undefined undefined

 注意,不包含undefined时,A || B和A 【程序员的数学】关于几种逻辑 B相等。

 

三值逻辑中的否定(!)

A !A
true false
false true
undefined undefined

三值逻辑的德摩根定律

(!A)||(!B)=!(A && B)

(!A)&&(!B)=!(A || B)

上一篇:乐 观 锁 一 定 就 是 好 的 吗 ?


下一篇:leetcode第647题回文子串