本書選取了計算機科學(xué)專業(yè)的學(xué)生需要掌握的離散數(shù)學(xué)基礎(chǔ)知識和核心理論進行系統(tǒng)的介紹,以利用計算機解決問題為主要目標(biāo),將理論與實踐結(jié)合起來,使學(xué)生充分認(rèn)識抽象的重要性。全書選材適當(dāng)、結(jié)構(gòu)清晰、敘述簡明、推理嚴(yán)謹(jǐn),適合作為高校計算機專業(yè)離散數(shù)學(xué)課程的教材,也適合從事計算機軟件開發(fā)工作的技術(shù)人員學(xué)習(xí)。
出版者的話
譯者序
前言
第1章 算法、數(shù)和機器1
1.1 什么是算法3
1.2 整數(shù)算法和復(fù)雜度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
習(xí)題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 無限序列和復(fù)雜度函數(shù)49
2.4.1 漢諾塔51
2.4.2 差的復(fù)雜度函數(shù)53
習(xí)題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ù)學(xué)歸納法75
3.6.1 強歸納法82
3.7 第1章的待證明結(jié)論83
3.7.1 RPM的正確性證明83
3.7.2 切蛋糕難題的正確性證明85
3.7.3 舍九法的正確性證明87
3.7.4 GCD歐幾里得算法的正確性證明88
3.8 第2章的待證明結(jié)論90
習(xí)題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
習(xí)題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 邊帶權(quán)圖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
習(xí)題169
第6章 關(guān)系:特別是(整數(shù))序列上的關(guān)系171
6.1 關(guān)系和表示171
6.1.1 矩陣表示171
6.1.2 有向圖表示172
6.1.3 關(guān)系的性質(zhì)172
6.2 等價關(guān)系173
6.2.1 等價關(guān)系的矩陣和有向圖表示174
6.3 序關(guān)系176
6.3.1 偏序的矩陣和有向圖表示177
6.3.2 極小元和極大元178
6.4 有限序列上的關(guān)系180
6.4.1 支配180
6.4.2 字典序182
6.5 無限序列上的關(guān)系184
6.5.1 漸近支配和大O表示法185
6.5.2 漸近等價和大Θ表示189
6.5.3 漸近排序191
6.5.4 強漸近支配和小o表示192
習(xí)題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的歐幾里得算法的復(fù)雜度213
7.4 求解二階線性遞推方程216
7.5 無限級數(shù)221
7.5.1 芝諾悖論221
7.5.2 序列和級數(shù)收斂的形式化定義222
習(xí)題227
第8章 生成序列和子集231
8.1 以字典序生成序列232
8.2 生成{1..n}的所有k元序列234
8.2.1 平均情況復(fù)雜度235
8.3 生成{1..n}的升序序列子集237
8.4 按字典序生成全排列244
8.4.1 按字典序生成{1..n}的所有k元排列251
習(xí)題254
第9章 離散概率和平均情況復(fù)雜度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 標(biāo)準(zhǔn)分布及其期望值273
9.4.1 均勻分布273
9.4.2 二項分布276
9.4.3 幾何分布277
9.5 條件期望值279
9.5.1 條件期望282
9.6 平均情況復(fù)雜度284
9.6.1 將期望應(yīng)用于線性查找284
9.6.2 將期望應(yīng)用于QuickSort285
習(xí)題289
第10章 圖靈機293
10.1 什么是算法293
10.1.1 Church-Turing理論299
10.1.2 通用圖靈機:計算模型299
10.1.3 停機問題300
習(xí)題302
索引304