第一章 基礎 邏輯和證明 集合 函式

2022-03-14 18:03:24 字數 3132 閱讀 9213

本章介紹離散數學的基礎知識。有三個主要內容:邏輯、集合和函式。邏輯規則給出數語語句的準確含義。 例如,邏輯規則有助於我們理解下列語句及推理:「存在乙個不是兩個整數的平方和的整數」, 以及「對每個整數n,小於等於n的正整數之和是n(n+1)/2」。 邏輯是所有數學推理的基礎,對計算機設計、系統規範說明、人工智慧、計算機程式設計、程式語言以及電腦科學的其他領域,邏輯都有實際的應用。

為了理解數學,就必須理解正確的數論證(即證明)是由什麼組成的。為了學習數學, 就需要構造數學論證而不僅僅是閱讀說明。 本章的目的在於講授正確的數學論證是由什麼組成的,並且介紹構造這些論證的工具。證明不僅對於數學是重要的,而且在電腦科學的很多方面也是重要的,包括程式驗證、演算法正確性和系統的安全性等。而且,自動推理系統已經被構造出來,允許計算機構造自己的證明。

離散數學的不少內容是研究用於表示離散物件的離散結構的。許多重要的離散結構都是用集合構造的,而集合則指的是一組物件。 從集合構造的離散結構例子包括:計數時廣為應用的物件組合,也就是無序的物件集;表示物件之間相互關連的關係,也就是有序偶的集合;圖形,也就是頂點集合及邊邊連線頂點的邊集合;以及用於模擬計算機的有限狀態機。

函式概念是離散數學中特別重要的概念。函式為乙個集合中每個元素恰好指派另乙個集合中的某個元素。像序列和字串等這些有用的結構都是函式的特例。函式在整個離散數學中扮演著重要的角色,主要用於表示演算法的計算複雜性,研究集合的大小,對不同型別別的物件計數,以及不計其數的其他方面。

1.1 邏輯

1.1.1 引言

邏輯規則給出數學語句的準確含義, 這些規則用來區分有效和無效的數學論證。由於本書的乙個主要目的是教會讀者如何構造正確的數學論證,所以我們從介紹邏輯開始離散數學的學習。

邏輯不僅對理解數學推理十分重要,而且在電腦科學中有許多應用。這些邏輯規則用於計算機電路設計、電腦程式構造、程式正確性證明以及許多其他方面。在隨後的幾章中將逐一討論這些應用。

1.1.2 命題

我們首先介紹邏輯的基本成分----命題。命題是乙個或真或假的陳述語句,但不能既真又假。

例1  下面的陳述句均為命題 

1. 華盛頓是美國的首都。

2. 多倫多是加拿大的首都。

3. 1+1=2。

4. 2+2=3。

命題1和3成真,命題2和4為假。

下一例子給出了不是命題的若干語句。

例2  考慮下述語句:

1.  幾點了?

2. 仔細讀這個。

3. x+1=2。

4. x+y=z。

語句1和2不是命題,因為它們不是陳述語句。語句3和4不是命題,因為它們既不成真,也不為假,這裡由於語句中的變數沒有賦值。在1.3 節將討論這一類語句形成命題的多種方法。

命題通常用字母表示,就像用字母表示變數那樣。習慣上用來表示命題的字母是p,q,r,s, ... 等。如果乙個命題是真命題,它的真值為真, 用t表示;如果它是假命題,其真值為假,用f表示。

涉及命題的邏輯領域稱為命題演算或命題邏輯。它最初是由亞里斯多德系統地佛建的。

現在我們轉而注意從那些已有的命題產生新的命題的方法,這些方法在2023年曾由英國數學家布林在他的題為《the laws of thought》的書中討論過。許多數學陳述都是由乙個或多個命題組合而來。稱為復合命題的新命題由已有的命題用邏輯運算子組合而來。

定義1命題p為一命題,則語句

「不是p所說的情形。」

是另乙個命題,稱為p的否定,p的否定用¬表示,命題¬p讀作「非p」. 

例3. 找出命題

「今天是星期五。」

的否定,並用中文表示。

解  否定為

「並非今天是星期五。」、

也可以更簡單地表述為

「今天不是星期五。」

注意: 嚴格地說,像例3這種含有可變時間的語句不是命題,除非假定了乙個確定的時間。同樣,除非假定了確定的地點,否則含有可變地點的語句不是命題;除非假定了確定的人,否則含有可變代詞的語句不是命題。 

真值表給出了命題真值之間的關。 在確定由較簡單命題組成的命題之真值時,真值表別有用。表1-1給出的命題p及其否定命題¬p所有可能的真值。

命題的否定也可以看作非運算子作用在命題上的結果。非運算子從乙個已有的命題構造出乙個新命題。現在將引入從兩個或者多個已有命題構造新命題的邏輯運算子, 這些邏輯運算子也稱為聯接詞。

表1-1 命題之否定的真值

p          

q                                           tf

ft定義2令 p 和 q 為命題。用 p ∧q 表示的命題「p而且q」是這樣乙個命題:當p和q 均成真時它成真,否則為假。命題 p ∧q 稱為p和q的合取。

表1-2 給出了 p ∧q 的真值表。注意真值表中共有四行,每行對應命題p和q 真值的一種組合。

例4  找出命題p和q的合取,其中p的命題「今天是星期五」,q的命題「今天下雨」。

解  這兩個命題的合取p ∧q 是命題「今天是星期五而且下雨」。 這一命題在下雨天的星期五成真,不是星期五的日子為假,不下雨的星期五也為假。

定義3令p和q為命題,用p∨q 表示命題「p或q」是這樣乙個命題:它的真值在p和q均為假時為假,否則成真。命題p∨q 稱為p和q的析取。

p∨q 的真值表如表1-3所示。 聯接詞「或」在析取中的使用對應於詞「或」(or)包含兩種情況之一,即是「同或」(inclusive or)。析取所含兩命題之一成真或者均成真時,析取的真值為真。例如,下面這句話中,「或」表達的即是「同或」;

「選修過微積分或電腦科學的學生可以選修本課程。」

這裡我們指的是,選修過微積分或電腦科學兩門課的學生以及只選修過其中一門課的學生都可以選修本課。另一方面,當我們說:

「學習過微積分或學過電腦科學,但不是兩者都學過的學生,可以註冊要課。」的時候,使用的「或」是「異或」。這裡我們的意思是既學過微積分,又學過電腦科學的學生不能選本課;只有那些恰好在這兩門課中選修過一門的學生可以選修本課。

同樣, 若餐館的選單上寫著「湯或沙拉,加一道小菜」。一般情況這都表示顧客可以選擇湯,也可以選擇沙拉, 但不是媽選擇湯又選擇沙拉,才加一道小菜。因此, 這裡是「異或」而不是「同或」。

例5  若 p 和q 就是例4中的兩個命題,它們的析取是什麼。 

數字邏輯 第一章 邏輯代數基礎

a bc a 1 b c bc 由於1與上任何數都為1 a ab ac bc 分配律 aa ab ac bc 重疊律 aa ac ab bc 交換律和結合律 a a c b a c 分配律 a b a c 分配律 邏輯變數與邏輯函式的取值都只可能是0或1,但相對某一邏輯網路而言,邏輯變數的取值是 自...

第一章 布林邏輯

一 背景,一些概念 0 布林代數 1 邏輯門 2 基本布林運算元 and or not 3 結論 每個布林函式不管有多複雜,都可以只使用三個布林運算元進行表達 4 門 是用來實現布林函式的物理裝置。最簡單的門由微笑的開關裝置 電晶體 transistors 構成,這些微小開關按照設計的拓補結構進行連...

python第一章筆記 第一章 基礎

參與除法的兩個數中有乙個數為浮點數,結果也為浮點數 如 1.0 2,1 2.0,1.0 2.0 python print 1.0 2 結果 0.5 print 1 2.0 結果 0.5 print 1.0 2.0 結果 0.5 整數 整數,計算結果的小數部分被截除,只保留整數部分 不會四捨五入 如 ...