本書選取了計算機科學專業(yè)的學生需要掌握的離散數(shù)學基礎知識和核心理論進行系統(tǒng)的介紹,以利用計算機解決問題為主要目標,將理論與實踐結合起來,使學生充分認識抽象的重要性。全書選材適當、結構清晰、敘述簡明、推理嚴謹,適合作為高校計算機專業(yè)離散數(shù)學課程的教材,也適合從事計算機軟件開發(fā)工作的技術人員學習。
出版者的話
譯者序
前言
第1章 算法、數(shù)和機器1
1.1 什么是算法3
1.2 整數(shù)算法和復雜度6
1.2.1 素數(shù)測試7
1.2.2 實數(shù)8
1.2.3 改進素數(shù)測試算法9
1.2.4 素數(shù)分解11
1.2.5 對數(shù)12
1.2.6 最大公約數(shù)14
1.3 數(shù)的機器表示16
1.3.1 近似誤差17
1.3.2 二進制、八進制和十六進制19
1.4 數(shù)值求解25
1.4.1 牛頓的平方根求解方法26
1.4.2 二分法27
習題30
第2章 集合、序列和計數(shù)32
2.1 樸素集合論32
2.1.1 可惡的圖書管理員34
2.1.2 集合運算和基數(shù)34
2.1.3 鴿巢原理36
2.2 序列37
2.2.1 子集的特征序列38
2.3 計數(shù)39
2.3.1 n元集合上的k元序列數(shù)40
2.3.2 n元集合的子集數(shù)40
2.3.3 n元集合上的k元排列數(shù)40
2.3.4 n的階乘41
2.3.5 n元集合上的k元子集數(shù)42
2.3.6 Pascal三角形44
2.3.7 非公式的計數(shù)策略46
2.4 無限序列和復雜度函數(shù)49
2.4.1 漢諾塔51
2.4.2 差的復雜度函數(shù)53
習題54
第3章 布爾表達式、邏輯和證明56
3.1 貪心算法和餅干選擇問題56
3.1.1 貪心算法56
3.2 布爾表達式和真值表60
3.2.1 否算子60
3.2.2 合取算子60
3.2.3 析取算子60
3.2.4 條件算子62
3.2.5 雙向條件算子63
3.3 謂詞和量詞64
3.4 有效推理65
3.5 證明實例68
3.5.1 直接證明70
3.5.2 間接證明71
3.5.3 Cantor的對角線方法73
3.6 數(shù)學歸納法75
3.6.1 強歸納法82
3.7 第1章的待證明結論83
3.7.1 RPM的正確性證明83
3.7.2 切蛋糕難題的正確性證明85
3.7.3 舍九法的正確性證明87
3.7.4 GCD歐幾里得算法的正確性證明88
3.8 第2章的待證明結論90
習題92
第4章 查找和排序95
4.1 查找95
4.1.1 查找任意列表95
4.1.2 查找有序列表96
4.2 分支圖100
4.2.1 二分查找的第二個版本101
4.3 排序106
4.3.1 選擇排序106
4.3.2 交換排序108
4.4 至少有n!個葉子的二叉樹113
4.5 劃分排序120
4.6 排序算法比較129
4.6.1 時間和運算的計數(shù)130
習題131
第5章 圖和樹134
5.1 引言134
5.1.1 度137
5.1.2 歐拉圖138
5.1.3 哈密頓圖139
5.2 路徑、回路和多邊形139
5.2.1 路徑確定的子圖140
5.3 樹142
5.3.1 遍歷142
5.4 邊帶權圖153
5.4.1 最短路徑157
5.5 有向圖157
5.5.1 有向路徑158
5.5.2 距離函數(shù)159
5.5.3 Dijkstra算法159
5.5.4 Floyd-Warshall算法165
習題169
第6章 關系:特別是(整數(shù))序列上的關系171
6.1 關系和表示171
6.1.1 矩陣表示171
6.1.2 有向圖表示172
6.1.3 關系的性質172
6.2 等價關系173
6.2.1 等價關系的矩陣和有向圖表示174
6.3 序關系176
6.3.1 偏序的矩陣和有向圖表示177
6.3.2 極小元和極大元178
6.4 有限序列上的關系180
6.4.1 支配180
6.4.2 字典序182
6.5 無限序列上的關系184
6.5.1 漸近支配和大O表示法185
6.5.2 漸近等價和大Θ表示189
6.5.3 漸近排序191
6.5.4 強漸近支配和小o表示192
習題194
第7章 序列和級數(shù)197
7.1 遞推方程實例197
7.2 求解一階線性遞推方程202
7.3 Fibonacci序列206
7.3.1 Fibonacci序列算法208
7.3.2 黃金比例210
7.3.3 Fibonacci序列和黃金比例210
7.3.4 Fibonacci序列的階213
7.3.5 GCD的歐幾里得算法的復雜度213
7.4 求解二階線性遞推方程216
7.5 無限級數(shù)221
7.5.1 芝諾悖論221
7.5.2 序列和級數(shù)收斂的形式化定義222
習題227
第8章 生成序列和子集231
8.1 以字典序生成序列232
8.2 生成{1..n}的所有k元序列234
8.2.1 平均情況復雜度235
8.3 生成{1..n}的升序序列子集237
8.4 按字典序生成全排列244
8.4.1 按字典序生成{1..n}的所有k元排列251
習題254
第9章 離散概率和平均情況復雜度260
9.1 概率模型260
9.1.1 采樣空間260
9.1.2 概率函數(shù)261
9.1.3 特例:等概率輸出262
9.2 條件概率264
9.2.1 組合事件265
9.2.2 條件概率265
9.2.3 獨立事件266
9.2.4 互斥事件266
9.3 隨機變量和期望值270
9.3.1 期望頻率270
9.3.2 期望值271
9.3.3 概率分布272
9.4 標準分布及其期望值273
9.4.1 均勻分布273
9.4.2 二項分布276
9.4.3 幾何分布277
9.5 條件期望值279
9.5.1 條件期望282
9.6 平均情況復雜度284
9.6.1 將期望應用于線性查找284
9.6.2 將期望應用于QuickSort285
習題289
第10章 圖靈機293
10.1 什么是算法293
10.1.1 Church-Turing理論299
10.1.2 通用圖靈機:計算模型299
10.1.3 停機問題300
習題302
索引304