本書是一本專門為程式設計師而寫的數學書,介紹了程式設計中常用的數學知識。本書門檻不高,不需要讀者精通很多高深的數學知識,只需要讀者具備基本的四則運算、乘方等數學基礎知識和日常生活中的基本邏輯判斷能力即可。本書拒絕枯燥乏味的講解,而是代之以輕鬆活潑的風格。書中列舉了大量讀者都很熟悉,而且非常有趣的數學實例,並結合程式設計的思維和算法加以剖析,可以訓練讀者的數學思維能力和程式設計能力,進而拓寬讀者的視野,增強職場競爭力。
基本介紹
- 書名:程式設計師的數學思維修煉(趣味解讀)
- ISBN:9787302350606
- 定價:45元
- 出版社:清華大學出版社
- 出版時間:2015-4-16
- 裝幀:平裝
圖書簡介,目錄,
圖書簡介
本書是一本專門為程式設計師而寫的數學書,介紹了程式設計中常用的數學知識。本書門檻不高,不需要讀者精通很多高深的數學知識,只需要讀者具備基本的四則運算、乘方等數學基礎知識和日常生活中的基本邏輯判斷能力即可。本書拒絕枯燥乏味的講解,而是代之以輕鬆活潑的風格。書中列舉了大量讀者都很熟悉,而且非常有趣的數學實例,並結合程式設計的思維和算法加以剖析,可以訓練讀者的數學思維能力和程式設計能力,進而拓寬讀者的視野,增強職場競爭力。
目錄
第1章數據的表示 1
1.1一則童話 1
1.1.10和1的故事 1
1.1.20是什麼都沒有? 2
1.1.30的位置 3
1.1.4程式中的0 4
1.2司空見慣的十進制數 8
1.2.1遠古的結繩記事 9
1.2.2什麼是十進制計數 10
1.2.3為啥人類習慣十進制 11
1.2.4十進制運算規則 11
1.2.5十進制數的分解 13
1.2.620!等於多少 14
1.2.7大整數構想 16
1.3為啥要用二進制 18
1.3.1人腦與電腦 18
1.3.2二進制計數規則 20
1.3.3簡單的二進制運算規則 22
1.3.4二進制數的分解 25
1.3.5十進制數轉換為二進制數 25
1.4還有哪些進制 26
1.4.1神奇的八卦:八進制 26
1.4.2鐘錶使用的十二進制 28
1.4.3半斤八兩:十六進制 29
1.4.460年一個甲子:六十進制 30
1.4.5各種進制之間的轉換 30
1.4.6二進制與八進制、十六進制的轉換 33
第2章神奇的素數 35
2.1怎么判斷素數 35
2.1.1什麼是素數 35
2.1.2驗證素數 36
2.1.3尋找素數的算法 38
2.1.4已被證明的素數定理 41
2.2孿生素數 43
2.2.1什麼是孿生素數 43
2.2.2孿生素數的公式 44
2.2.3中國剩餘定理 44
2.2.4孿生素數分布情況 45
2.3使用素數的RSA算法 47
2.3.1什麼是RSA 47
2.3.2RSA算法基礎 48
2.3.3RSA算法實踐 50
2.3.4RSA套用:數字簽名 51
2.3.5RSA被破解的可能性 52
2.4哥德巴赫猜想 53
2.4.1哥德巴赫猜想是什麼 53
2.4.2數值驗證 55
2.5梅森素數 57
2.5.1什麼是梅森素數 57
2.5.2已知的梅森素數列表 58
第3章遞歸——自己調用自己 61
3.1從前有座山,山裡有座廟 61
3.1.1老和尚講的故事 61
3.1.2德羅斯特效應 61
3.1.3什麼是遞歸 62
3.1.4用遞歸能解決哪些問題 63
3.1.5一個簡單例子:求最大公約數 64
3.2用遞歸計算階乘 66
3.2.1階乘該怎么計算 66
3.2.2階乘的遞歸計算方法 70
3.2.3遞歸的過程 71
3.2.4遞歸的本質:縮小問題規模 74
3.3漢諾塔 75
3.3.1古老的傳說 75
3.3.2從兩個盤考慮 76
3.3.3找出遞歸結構 78
3.3.4實現程式 80
3.3.5究竟需要移動多少次 82
3.4斐波那契數列 83
3.4.1兔子的家族 83
3.4.2從最初幾月數據中找規律 83
3.4.3斐波那契數列 85
3.4.4神奇的魔八方 87
第4章排列組合——讓數選邊站隊 90
4.1把所有情況都列出來 90
4.1.1從0還是1開始 90
4.1.2賽程安排 92
4.2乘法原理 94
4.2.1行程安排的問題 94
4.2.2乘法原理適用條件 95
4.2.3棋盤上棋子的放法 96
4.2.4買彩票保證中獎的方法 98
4.3加法原理 99
4.3.1仍然是行程問題 99
4.3.2總結出的加法原理 99
4.3.3骰子出現偶數的次數 100
4.4排列與組合的關係 101
4.4.1排列 101
4.4.2組合 106
4.4.3排列與組合的聯繫 109
4.4.4可重排列 110
4.5計算機中的字元編碼 113
4.5.1ASCII碼能表示的字元數量 114
4.5.2能表示更大範圍的編碼 117
4.6密碼的長度 119
4.6.1容易破解的密碼 119
4.6.2多長的密碼才安全 120
4.6.3密碼中使用的字元數量也很關鍵 120
第5章餘數——數據分組 122
5.1複習國小的餘數 122
5.1.1自然數的餘數 122
5.1.2餘數的性質 123
5.1.3用餘數進行分組 126
5.2日曆中的數學 127
5.2.1n天后是星期幾 127
5.2.2下月的今天是星期幾 129
5.2.310年後的“今天”是星期幾 130
5.3心靈感應魔術 132
5.3.1一個小魔術 132
5.3.2魔術師是怎么猜出來的 135
5.4奇偶校驗 139
5.4.1不可靠的網路傳輸 139
5.4.2用奇偶校驗檢查錯誤 139
5.5呂洞賓不能坐首位 140
5.5.1座位安排 141
5.5.2試排座位找規律 142
5.5.3西方的約瑟夫環 144
5.5.4用數學方法解約瑟夫環 147
5.6智叟分牛 150
5.6.1遺產分配難題 150
5.6.2智叟給出的分配方案 151
5.6.3分配原理 151
第6章機率——你運氣好嗎 154
6.1國中學習過的機率 154
6.1.1誰先開球 154
6.1.2用程式模擬拋硬幣 155
6.1.3什麼是機率 158
6.1.4必然事件與不可能事件 159
6.1.5機率的基本性質 160
6.2百枚錢幣鼓士氣 161
6.2.1狄青的計謀 162
6.2.2全為正面的機率是多少 162
6.2.3必然還是偶然 165
6.3莊家的勝率是多少 165
6.3.1一個看似公平的遊戲 165
6.3.2莊家能贏錢嗎 166
6.3.3莊家盈利比率 168
6.3.4遊戲參與者獲勝的機率 170
6.4你能中獎嗎 171
6.4.1想中大獎嗎 171
6.4.2計算中獎機率 172
6.5漁塘中有多少條魚 177
6.5.1該怎么估算漁塘中的魚 177
6.5.2用機率來估算 178
6.5.3用機率方法求π值 179
第7章翻一番是多少 182
7.1翻番的概念 182
7.1.1什麼是翻番 182
7.1.2翻倍的概念 183
7.1.3計算倍數和番數 184
7.2複利的威力 184
7.2.1利潤——投資回報 185
7.2.2認識單利 185
7.2.3認識複利 187
7.2.4計算投資回報的程式 190
7.2.5忘還錢的信用卡 191
7.2.6愛因斯坦的72法則 193
7.3對摺紙張 194
7.3.1有趣的問題:紙張對摺 194
7.3.2100米長的紙能對摺幾次 195
7.3.3計算對摺次數的程式 198
7.4一棋盤的麥子 200
7.4.1舍罕王的賞賜 200
7.4.2需要多少麥粒 201
7.5折半法的運用 203
7.5.1翻番的逆運算 203
7.5.2找出假硬幣 203
7.5.3編寫程式找出假硬幣 207
7.5.4折半法在查找中的套用 209
第8章數理邏輯——非此即彼 212
8.1邏輯的重要性 212
8.1.1模稜兩可的表述 212
8.1.2肯定或否定 213
8.1.3程式中的邏輯判斷 213
8.2命題邏輯 214
8.2.1什麼是命題 214
8.2.2命題的邏輯形式 216
8.2.3簡單命題 217
8.2.4複合命題 217
8.2.5複合命題的聯結詞 218
8.3布爾邏輯 224
8.3.1邏輯或 225
8.3.2邏輯與 227
8.3.3邏輯非 228
8.3.4邏輯異或 229
8.3.5二進制位運算 230
8.4考慮到各種可能了嗎 233
8.4.1邏輯重疊的實例 233
8.4.2邏輯遺漏的實例 235
8.4.3用數軸確定邊界 236
8.5用卡諾圖簡化邏輯函式 237
8.5.1什麼是卡諾圖 237
8.5.2三變數卡諾圖 239
8.5.3四變數卡諾圖 240
8.5.4卡諾圖化簡 242
8.5.5卡諾圖中的相鄰 244
第9章推理——邏輯的套用 246
9.1演繹推理 246
9.1.1認識演繹推理點 246
9.1.2三段論 247
9.1.3選言推理 249
9.1.4假言推理 252
9.1.5關係推理 256
9.1.6演繹推理綜合實例 257
9.2歸納推理 258
9.2.1什麼是歸納推理 258
9.2.2完全歸納推理 260
9.2.3不完全歸納推理 261
9.3足球比賽的得分 265
9.3.1粗心的記分員 265
9.3.2從已有數據推算出比分 267
第10章幾何圖形構造 271
10.1花盆擺放問題 271
10.1.110盆花擺成5行,每行4盆 271
10.1.2轉變思路,找出答案 272
10.1.3升級問題(10盆花擺10行,每行3盆) 274
10.2殘缺的棋盤能補上嗎? 275
10.2.1被切割的棋盤 275
10.2.2能拼接出殘缺棋盤嗎 276
10.3線條哪裡去了? 278
10.3.1神奇的魔術 278
10.3.2解析丟失的線條 279
10.4圖形剪拼 280
10.4.1均分三角形 281
10.4.2拼接正方形 282
第11章統籌規劃 286
11.1認識統籌規劃 286
11.1.1田忌賽馬 286
11.1.2為什麼會贏 287
11.2生活中的統籌規劃 288
11.2.1匆忙的早晨 288
11.2.2如何節約運輸成本 290
11.3著名的背包問題 292
11.3.1什麼是背包問題 292
11.3.2用遞歸程式解決背包問題 294
11.3.3用窮舉法解決背包問題 298
程式設計師的數學思維修煉(趣味解讀)
目錄