本書對計算機類專業在本科階段*需要掌握的離散數學基礎知識做了系統介紹,力求概念清晰,注重實際應用。全書共7章,包括準備知識(集合、整數、序列、矩陣)、數理邏輯、組合數學(計數)、二元關系、布爾代數、圖論(圖、樹、圖和樹的有關算法)等,并含有較多的與計算機類專業相關的例題和習題。本書敘述簡潔、深入淺出、注重實踐和應用,主要面向地方院校和獨立學院計算機類專業的本科學生,也可以作為大學非計算機專業學生的選修課教材和計算機應用技術人員的自學參考書。
1 簡單易學:只要求學生學過高等數學,不需要更多的預備知識,寫作風格深入淺出,理論適中,實例豐富,便于自學。2 實用性強:注重離散數學作為計算機科學專業的數學基礎,強調與本專業后續課程的關系,所舉例子盡量與專業相關。3 定位明確:精選教學內容,適合地方二本院校和獨立學院學生使用。
本書以第1版為基礎,在聽取廣大讀者的意見和建議的基礎上修改而成。本版主要對第1版中一些描述錯誤和印刷錯誤進行訂正,增加第4.8節的函數等內容。
離散數學是計算機類專業的一門重要的專業基礎課,屬于現代數學的范疇,是隨著計算機科學的發展而逐步形成的一門新興的工具性學科,它在計算機類專業的許多后續課程中有著廣泛的應用,為計算機科學與技術提供數學基礎。國內出版的離散數學教材不少,但特別適合地方院校和獨立學院計算機類專業使用的不多,主要問題是理論性太強,大都是從純數學的角度討論問題,缺乏與計算機相關專業聯系。本教材的寫作目的是從離散數學教學的實際現狀出發,克服目前國內教材普遍存在著重理論、忽視應用的問題,本著突出離散數學的實用性,按實用夠用的原則精選教學內容,突破傳統的離散數學的四大模塊內容,刪除部分大學階段用不到的內容,增加基礎知識、組合數學和布爾代數等內容,使教學內容更加實用易學。
本教材第1章主要介紹本書所需的準備知識,包括集合及在計算機中的表示、數論初步、序列和遞推關系、一般矩陣和布爾矩陣的運算。第2章主要介紹數理邏輯的基礎知識,包括命題邏輯和謂詞邏輯的基本概念、演算及推理理論。第3章主要介紹組合數學中的計數理論和方法,包括計數法則、生成函數、鴿巢原理和容斥原理。第4章主要介紹二元關系理論,包括二元關系基本概念和運算、等價關系和劃分、偏序關系和拓撲排序、n元關系及應用、函數等。第5章主要介紹布爾代數的基本理論和應用,包括布爾運算、布爾表達式和布爾函數、積之和展開式(析取范式)、邏輯門電路表示和卡諾圖。第6章主要介紹圖的基本理論和應用,包括圖論基礎、圖的矩陣表示、連通性理論、幾種特殊的圖、帶權圖的最短路徑算法(Dijkstra算法和Floyd算法)。第7章主要介紹樹及其應用,包括樹的定義、樹的應用(決策樹、前綴碼等)、樹的遍歷算法、表達式表示、生成樹和最小生成樹算法(Prim和Kruskal算法)。
本教材有以下特點。
(1) 簡單易學: 只要求學生學過高等數學,不需要更多的預備知識,寫作風格深入淺出,理論適中,實例豐富,便于自學。
(2) 實用性強: 注重離散數學作為計算機科學專業的數學基礎,強調與本專業后續課程的關系,所舉例子盡量與專業相關。
(3) 定位明確: 適合地方二本院校和獨立學院學生使用。
本教材教學課時數為72~90學時。教師可根據學時數、專業和學生的實際情況對教材內容進行選講。
本書由謝勝利、虞銘財、黃月華、高麗麗編寫。其中第1章由虞銘財編寫,第3章由黃月華編寫,第5章由高麗麗編寫,其余章節由謝勝利編寫。全書由謝勝利統稿。
因為作者水平有限,難免存在錯誤,懇請讀者賜教指正。
編者
2015年9月
第1章準備知識
1.1集合
1.1.1集合的基本概念
1.1.2集合的基本運算和性質
1.1.3集合的笛卡兒積
1.1.4集合的計算機表示
1.2整數
1.2.1整除
1.2.2最大公約數和最小公倍數
1.2.3模運算
1.3序列和遞推關系
1.3.1序列
1.3.2序列求和
1.3.3遞推關系
1.4矩陣
1.4.1矩陣的概念
1.4.2矩陣的運算
1.4.3布爾矩陣
習題1
第2章數理邏輯
2.1命題及聯結詞
2.1.1命題的概念
2.1.2命題聯結詞
2.2命題公式和分類
2.2.1命題變元和命題公式
2.2.2命題公式的賦值和真值表
2.2.3命題公式的類型
2.3等值演算與范式
2.3.1等價和基本等價式
2.3.2等值演算
2.3.3范式
2.4命題邏輯的推理理論
2.4.1推理的形式結構
2.4.2演繹法證明推理
2.5謂詞邏輯基礎
2.5.1謂詞邏輯的基本概念
2.5.2謂詞公式及其解釋
2.6謂詞邏輯等值式與范式
2.6.1謂詞邏輯等值式
2.6.2前束范式
2.7謂詞邏輯的推理理論
2.7.1有關量詞的基本蘊涵式
2.7.2有關量詞的推理規則
習題2
第3章計數
3.1基本計數、排列與組合
3.1.1基本的計數原則
3.1.2排列與組合
3.2排列組合的進一步討論
3.2.1圓周排列
3.2.2有重復的排列
3.2.3有重復的組合
3.3生成排列和組合
3.3.1生成排列
3.3.2生成組合
3.4生成函數及其應用
3.4.1生成函數的定義
3.4.2生成函數求解計數問題
3.4.3使用生成函數求解遞推關系
3.5鴿巢原理
3.5.1一般的鴿巢原理
3.5.2推廣的鴿巢原理
3.6容斥原理
3.6.1容斥原理
3.6.2容斥原理的應用
習題3
第4章關系
4.1關系定義及其表示
4.1.1關系的基本概念
4.1.2二元關系的表示
4.2關系的運算
4.2.1關系的合成
4.2.2逆運算
4.3關系的性質
4.3.1自反性與反自反性
4.3.2對稱性與反對稱性
4.3.3傳遞關系
4.4n元關系及其應用
4.5關系的閉包
4.5.1閉包的概念和求法
4.5.2Warshall算法
4.6等價關系
4.6.1等價關系與等價類
4.6.2等價關系與劃分
4.7偏序關系
4.7.1偏序關系和哈斯圖
4.7.2極值和最值
4.7.3拓撲排序
4.8函數
4.8.1函數的定義
4.8.2函數的類型
4.8.3函數的運算
習題4
第5章布爾代數
5.1布爾函數
5.1.1布爾函數和布爾表達式
5.1.2布爾代數中的恒等式
5.2布爾函數的表示
5.2.1布爾函數的主析取范式
5.2.2函數完備性
5.3布爾代數的應用
5.3.1門電路
5.3.2卡諾圖
習題5
第6章圖
6.1圖的基本概念
6.1.1無向圖和有向圖
6.1.2握手定理
6.1.3圖的同構
6.2圖的連通性
6.2.1通路和回路
6.2.2無向圖的連通性
6.2.3有向圖的連通性
6.3圖的矩陣表示
6.3.1關聯矩陣
6.3.2鄰接矩陣
6.3.3有向圖的可達矩陣
6.4一些特殊的圖
6.4.1二部圖
6.4.2歐拉圖
6.4.3哈密爾頓圖
6.5帶權圖的最短路徑
6.5.1Dijkstra算法
6.5.2Floyd算法
6.5.3旅行商問題
6.6平面圖
6.6.1平面圖的定義
6.6.2歐拉公式
6.6.3庫拉圖斯基定理
習題6
第7章樹
7.1無向樹的概念
7.1.1無向樹的定義
7.1.2無向樹的應用例子
7.2生成樹
7.2.1生成樹的定義
7.2.2求最小生成樹的算法
7.3根樹及應用
7.3.1根樹的定義及應用
7.3.2最優二叉樹和Huffman編碼
7.3.3二叉樹的遍歷
習題7
參考文獻