程序员的数学(二)—— 逻辑,真与假的二元世界

一、逻辑的基本思路

1、什么是逻辑?

逻辑是消除自然语言的歧义、严密准确的记述事物的工具。

2、命题及其真假

能够判断对错的陈述句,叫做命题。

命题正确时,称该命题为“真”

命题不正确时,称该命题为“假”

3、兼顾完整性和排他性

具备完整性,说明该规则无论在什么情况下都适用;

具备排他性,说明该规则不存在矛盾之处。

if语句的条件分支,体现了“兼顾完整性和排他性的分解”。

二、建立复杂命题

1、逻辑非 —— 不是A

“不是......”的命题运算称作非,英语中用not表示,假设某命题为A,则A的逻辑非表达式写作:

        ﹁ A(not A)

● 命题A为true时,命题﹁ A为false,命题﹁ ﹁ A为true

● 命题A为false时,命题﹁ A为true,命题﹁ ﹁ A为false

2、逻辑与 —— A并且B

“A并且B”的命题称作逻辑与,英语中用and表示,命题“A并且B”用逻辑表达式写作:

        A∧B(A and B)

● 仅当A和B都为true时,A∧B才为true

3、逻辑或 —— A或者B

“A或者B”的命题运算称作逻辑或,英语中用or表示,命题“A或者B”用逻辑表达式写作:

        A∨B(A or B)

● A和B至少有一个为true时,才为true

● 当A和B都为false时,才为false

4、异或 —— A或者B(但不是都满足)

“A或者B(但不是都满足)”的运算称作异或,英语中称作exclusive or,它和逻辑或相似,但是在A和B都为true或者false的情况下有所不同,它的逻辑表达式写作:

        A⊕B

● 当A和B不同时,才为true

5、相等 —— A和B相等

它的逻辑表达式写作:

        A=B

● 当A和B都为true时,A=B为true

● 当A和B都为false时,A=B为true

三、德●摩根定律

1、什么是摩根定律?

(﹁ A)∨(﹁ B)=﹁ (A∧B):“非A”或者“非B”和非“A与B”是等价的

(﹁ A)∧(﹁ B)=﹁ (A∨B):“非A”并且“非B”和非“A或B”是等价的

2、对偶性

在逻辑表达式中分别将true和false、A和﹁ A、∧和∨进行互换,就能得到该逻辑表达式的否定式。如下:

true    ←→    false

A        ←→    ﹁ A

∧        ←→    ∨

它们相互成对,这称作逻辑表达式的对偶性。

四、包含未定义的逻辑

        程序经常会因为发生错误,导致退出、崩溃等,得不到true和false中的任意一个值,为了能表示这种得不到的值的情况,又新引入了一个undefined的值。即true、false、undefined三值逻辑。

1、带条件的逻辑与(&&)

它使用运算符&&,将A和B的带条件的逻辑与表示为:A&&B

● 不包含undefined的行,A&&B与和A ∧ B相等;

● A为true时,A&&B与B相等;

● A为false时,A&&B恒为false;

● A为undefined时,A&&B恒为undefined。

在判断A与B的真假值时,应根据条件A看是否需要看B,因此称为带条件的逻辑与。

2、带条件的逻辑或(||)

它使用运算符||,将A和B的带条件的逻辑或表示为:A||B

● 不包含undefined时,A||B与A ∨ 相等;

● A为true时,A||B恒为true;

● A为false时,A||B与B相等;

● A为undefined时,A||B恒为undefined。

3、三值逻辑中的否定(!)

它的否定式写作:!A

● 不包含undefined时,!A和﹁ A相等;

● 若A为undefined时,!A恒为undefined。

4、三值逻辑的摩根定律

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

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

你可能感兴趣的:(逻辑,程序员的数学)