算法精粹 經(jīng)典計(jì)算機(jī)科學(xué)問題的Python實(shí)現(xiàn)(異步圖書出品)
定 價(jià):59 元
- 作者:大衛(wèi)·科帕克(David Kopec) 著,戴旭 譯
- 出版時(shí)間:2020/7/1
- ISBN:9787115535122
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.561
- 頁碼:209
- 紙張:膠版紙
- 版次:1
- 開本:16開
本書是一本面向中高級(jí)程序員的算法教程,借助Python語言,用經(jīng)典的算法、編碼技術(shù)和原理來求解計(jì)算機(jī)科學(xué)的一些經(jīng)典問題。全書共9章,不僅介紹了遞歸、結(jié)果緩存和位操作等基本編程組件,還講述了常見的搜索算法、常見的圖算法、神經(jīng)網(wǎng)絡(luò)、遺傳算法、k均值聚類算法、對抗搜索算法等,運(yùn)用了類型提示等Python高級(jí)特性,并通過各級(jí)方案、示例和習(xí)題展開具體實(shí)踐。
本書將計(jì)算機(jī)科學(xué)與應(yīng)用程序、數(shù)據(jù)、性能等現(xiàn)實(shí)問題深度關(guān)聯(lián),定位獨(dú)特,示例經(jīng)典,適合有一定編程經(jīng)驗(yàn)的中高級(jí)Python程序員提升用Python解決實(shí)際問題的技術(shù)、編程和應(yīng)用能力。
1.計(jì)算機(jī)科學(xué)和算法問題具有非常廣泛的應(yīng)用領(lǐng)域,而且經(jīng)常出現(xiàn)在程序員面試題中;
2.本書所采用的Python語言是當(dāng)前***的程序設(shè)計(jì)語言,基于Python3.7版本;
3.將計(jì)算機(jī)科學(xué)與應(yīng)用程序、數(shù)據(jù)、性能等現(xiàn)實(shí)問題深度關(guān)聯(lián)。
看似新穎或獨(dú)特的計(jì)算機(jī)科學(xué)問題,往往根植于經(jīng)典算法、編碼技巧和工程原理。經(jīng)典方法仍然是解決這些問題的最佳途徑!理解用Python實(shí)現(xiàn)的這些技巧,可以擴(kuò)展你在Web開發(fā)、數(shù)據(jù)處理、機(jī)器學(xué)習(xí)等方面獲得成功的潛力。
本書詳細(xì)介紹一些經(jīng)過時(shí)間驗(yàn)證的方案、練習(xí)和算法,以提升你解決計(jì)算機(jī)科學(xué)問題的技能。從二分搜索算法這種簡單的任務(wù),到用k 均值聚類算法對數(shù)據(jù)進(jìn)行聚類,很多編碼挑戰(zhàn)都將迎刃而解。破解將計(jì)算機(jī)科學(xué)與應(yīng)用、數(shù)據(jù)、性能等真實(shí)世界相關(guān)聯(lián)的問題,會(huì)讓你特別享受那種滿足感,甚至可以讓你在下一次工作面試中應(yīng)對自如!
本書主要內(nèi)容
● 搜索算法。
● 圖的常見技術(shù)。
● 神經(jīng)網(wǎng)絡(luò)。
● 遺傳算法。
● 對抗性搜索。
● 始終使用類型提示。
本書適合中級(jí)Python 程序員閱讀。
大衛(wèi)·科帕克(David Kopec)是香普蘭學(xué)院(Champlain College)的計(jì)算機(jī)科學(xué)與創(chuàng)新專業(yè)助理教授,該學(xué)院位于美國佛蒙特州的伯靈頓市。他是一位經(jīng)驗(yàn)豐富的軟件開發(fā)人員,也是Classic Computer Science Problems in Swift和Dart for Absolute Beginners的作者。他擁有達(dá)特茅斯學(xué)院(Dartmouth College)的經(jīng)濟(jì)學(xué)學(xué)士學(xué)位和計(jì)算機(jī)科學(xué)碩士學(xué)位。
目錄
第 1章 幾個(gè)小問題 1
1.1 斐波那契序列 1
1.1.1 嘗試第 一次遞歸 1
1.1.2 基線條件的運(yùn)用 3
1.1.3 用結(jié)果緩存來救場 4
1.1.4 自動(dòng)化的結(jié)果緩存 5
1.1.5 簡潔至上的斐波那契 6
1.1.6 用生成器生成斐波那契數(shù) 7
1.2 簡單的壓縮算法 7
1.3 牢不可破的加密方案 12
1.3.1 按順序讀取數(shù)據(jù) 12
1.3.2 加密和解密 13
1.4 計(jì)算( 15
1.5 漢諾塔 15
1.5.1 對塔進(jìn)行建!16
1.5.2 求解漢諾塔問題 17
1.6 現(xiàn)實(shí)世界的應(yīng)用 19
1.7 習(xí)題 20
第 2章 搜索問題 21
2.1 DNA搜索 21
2.1.1 DNA的存儲(chǔ)方案 22
2.1.2 線性搜索 23
2.1.3 二分搜索 24
2.1.4 通用示例 26
2.2 求解迷宮問題 28
2.2.1 生成一個(gè)隨機(jī)迷宮 29
2.2.2 迷宮的其他函數(shù) 30
2.2.3 深度優(yōu)先搜索 31
2.2.4 廣度優(yōu)先搜索 35
2.2.5 A*搜索 39
2.3 傳教士和食人族 44
2.3.1 表達(dá)問題 45
2.3.2 求解 47
2.4 現(xiàn)實(shí)世界的應(yīng)用 48
2.5 習(xí)題 49
第3章 約束滿足問題 51
3.1 構(gòu)建約束滿足問題的解決框架 52
3.2 澳大利亞地圖著色問題 55
3.3 八皇后問題 58
3.4 單詞搜索 60
3.5 字謎(SEND+MORE=MONEY) 63
3.6 電路板布局 65
3.7 現(xiàn)實(shí)世界的應(yīng)用 66
3.8 習(xí)題 67
第4章 圖問題 69
4.1 地圖就是圖 69
4.2 搭建圖的框架 71
4.3 查找最短路徑 77
4.4 最小化網(wǎng)絡(luò)構(gòu)建成本 79
4.4.1 權(quán)重的處理 79
4.4.2 查找最小生成樹 83
4.5 在加權(quán)圖中查找最短路徑 89
4.6 現(xiàn)實(shí)世界的應(yīng)用 95
4.7 習(xí)題 96
第5章 遺傳算法 97
5.1 生物學(xué)背景知識(shí) 97
5.2 通用的遺傳算法 98
5.3 簡單測試 105
5.4 重新考慮SEND+MORE=MONEY問題 107
5.5 優(yōu)化列表壓縮算法 111
5.6 遺傳算法面臨的挑戰(zhàn) 113
5.7 現(xiàn)實(shí)世界的應(yīng)用 114
5.8 習(xí)題 115
第6章 k均值聚類 117
6.1 預(yù)備知識(shí) 117
6.2 k均值聚類算法 119
6.3 按年齡和經(jīng)度對州長進(jìn)行聚類 124
6.4 按長度聚類邁克爾·杰克遜的專輯 128
6.5 k均值聚類算法問題及其擴(kuò)展 130
6.6 現(xiàn)實(shí)世界的應(yīng)用 131
6.7 習(xí)題 131
第7章 十分簡單的神經(jīng)網(wǎng)絡(luò) 133
7.1 生物學(xué)基礎(chǔ) 133
7.2 人工神經(jīng)網(wǎng)絡(luò) 135
7.2.1 神經(jīng)元 135
7.2.2 分層 136
7.2.3 反向傳播 137
7.2.4 全貌 139
7.3 預(yù)備知識(shí) 140
7.3.1 點(diǎn)積 140
7.3.2 激活函數(shù) 140
7.4 構(gòu)建神經(jīng)網(wǎng)絡(luò) 142
7.4.1 神經(jīng)元的實(shí)現(xiàn) 142
7.4.2 層的實(shí)現(xiàn) 143
7.4.3 神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn) 145
7.5 分類問題 148
7.5.1 數(shù)據(jù)的歸一化 148
7.5.2 經(jīng)典的鳶尾花數(shù)據(jù)集 149
7.5.3 葡萄酒的分類 152
7.6 為神經(jīng)網(wǎng)絡(luò)提速 155
7.7 神經(jīng)網(wǎng)絡(luò)問題及其擴(kuò)展 156
7.8 現(xiàn)實(shí)世界的應(yīng)用 157
7.9 習(xí)題 157
第8章 對抗搜索 159
8.1 棋盤游戲的基礎(chǔ)組件 159
8.2 井字棋 161
8.2.1 井字棋的狀態(tài)管理 161
8.2.2 極小化極大算法 164
8.2.3 用井字棋測試極小化極大算法 167
8.2.4 開發(fā)井字棋AI 168
8.3 四子棋 169
8.3.1 四子棋游戲程序 170
8.3.2 四子棋AI 175
8.3.3 用α-β剪枝算法優(yōu)化極小化極大算法 177
8.4 超越α-β剪枝效果的極小化極大算法改進(jìn)方案 178
8.5 現(xiàn)實(shí)世界的應(yīng)用 179
8.6 習(xí)題 179
第9章 其他問題 181
9.1 背包問題 181
9.2 旅行商問題 186
9.2.1 樸素解法 186
9.2.2 進(jìn)階 191
9.3 電話號(hào)碼助記符 191
9.4 現(xiàn)實(shí)世界的應(yīng)用 193
9.5 習(xí)題 194
附錄A 術(shù)語表 195
附錄B 其他資料 201
附錄C 類型提示簡介 205