首 頁
手機版

算法的樂趣 pdf高清完整版

算法的樂趣是由王曉華所編寫的一本適合軟件開發(fā)人員、編程和算法愛好者以及計算機的學生閱讀的圖書,目前銷量非常的好,其主要的算法有:歷法和二十四節(jié)氣計算使用的是霍納法則和求解一元高次方程的牛頓迭代法、音頻播放器跳動的實時頻譜背后是離散傅立葉變換算法、DOS時代的PCX圖像文件格式使用的是簡單有效的RLE壓縮算法、RSA加密算法的光環(huán)之下是樸實的歐幾里德算法、蒙哥馬利算法和米勒-拉賓算法等。

本書沒有像一般的算法書一樣單純地去講算法和數(shù)據(jù)結構本身,那樣無論語言多風趣,只要一談到關鍵的問題也會馬上變得無趣起來,它同時涵蓋邏輯類算法、通用類算法和類算法,真正是在訓練讀者解決問題的能力,而解決問題的能力,這正是任何一家公司所需人才的核心的技能?!北緯钊霚\出的講述了算法的原理,通俗易懂,有需要的朋友可以下載閱讀。

內(nèi)容簡介

王曉華編著的這本《算法的樂趣》從一系列有趣的生活實例出發(fā),全面介紹了構造算法的基礎方法及其廣泛應用,生動地展現(xiàn)了算法的趣味性和實用性。全書分為兩個部分,靠前部分介紹了算法的概念、常用的算法結構以及實現(xiàn)方法,第二部分介紹了算法在各個領域的應用,如物理實驗、計算機圖形學、數(shù)字音頻處理等。

其中,既有各種大名鼎鼎的算法,如神經(jīng)網(wǎng)絡、遺傳算法、離散傅里葉變換算法及各種插值算法,也有不起眼的排序和概率計算算法。講解淺顯易懂而不失深度和嚴謹,對程序員有很大的啟發(fā)意義。書中所有的示例都與生活息息相關,淋漓盡致地展現(xiàn)了算法解決問題的本質(zhì),讓你愛上算法,樂在其中。

算法的樂趣pdf目錄

第1章程序員與算法

1.1什么是算法

1.2程序員必須要會算法嗎

1.2.1一個隊列引發(fā)的慘案

1.2.2我的個算法

1.3算法的樂趣在哪里

1.4算法與代碼

1.5總結

1.6參考資料

第2章算法設計的基礎

2.1程序的基本結構

2.1.1順序執(zhí)行

2.1.2循環(huán)結構

2.1.3分支和跳轉(zhuǎn)結構

2.2算法實現(xiàn)與數(shù)據(jù)結構

2.2.1基本數(shù)據(jù)結構在算法設計中的應用

2.2.2復雜數(shù)據(jù)結構在算法設計中的應用

2.3數(shù)據(jù)結構和數(shù)學模型與算法的關系

2.4總結

2.5參考資料

第3章算法設計的常用思想

3.1貪婪法

3.1.1貪婪法的基本思想

3.1.2貪婪法的例子:0-1背包問題

3.2分治法

3.2.1分治法的基本思想

3.2.2遞歸和分治,一對好朋友

3.2.3分治法的例子:大整數(shù)Karatsuba乘法算法

3.3動態(tài)規(guī)劃

3.3.1動態(tài)規(guī)劃的基本思想

3.3.2動態(tài)規(guī)劃法的例子:字符串的編輯距離

3.4解空間的窮舉搜索

3.4.1解空間的定義

3.4.2窮舉解空間的策略

3.4.3窮舉搜索的例子:Google方程式

3.5總結

3.6參考資料

第4章阿拉伯數(shù)字與中文數(shù)字

4.1中文數(shù)字的特點

4.1.1中文數(shù)字的權位和小節(jié)

4.1.2中文數(shù)字的零

4.2阿拉伯數(shù)字轉(zhuǎn)中文數(shù)字

4.2.1一個轉(zhuǎn)換示例

4.2.2轉(zhuǎn)換算法設計

4.2.3算法實現(xiàn)

4.2.4中文大寫數(shù)字

4.3中文數(shù)字轉(zhuǎn)阿拉伯數(shù)字

4.3.1轉(zhuǎn)換的基本方法

4.3.2算法實現(xiàn)

4.4數(shù)字轉(zhuǎn)換的測試用例

4.5總結

4.6參考資料

第5章三個水桶等分8升水的問題

5.1問題與求解思路

5.2建立數(shù)學模型

5.2.1狀態(tài)的數(shù)學模型與狀態(tài)樹

5.2.2倒水動作的數(shù)學模型

5.3搜索算法

5.3.1狀態(tài)樹的遍歷

5.3.2剪枝和重復狀態(tài)判斷

5.4算法實現(xiàn)

5.5總結

5.6參考資料

第6章妖怪與和尚過河問題

6.1問題與求解思路

6.2建立數(shù)學模型

6.2.1狀態(tài)的數(shù)學模型與狀態(tài)樹

6.2.2過河動作的數(shù)學模型

6.3搜索算法

6.3.1狀態(tài)樹的遍歷

6.3.2剪枝和重復狀態(tài)判斷

6.4算法實現(xiàn)

6.5總結

6.6參考資料

第7章穩(wěn)定匹配與舞伴問題

7.1穩(wěn)定匹配問題

7.1.1什么是穩(wěn)定匹配

7.1.2Gale-Shapley算法原理

7.2Gale-Shapley算法的應用實例

7.2.1算法實現(xiàn)

7.2.2改進優(yōu)化:空間換時間

7.3有多少穩(wěn)定匹配

7.3.1窮舉所有的完美匹配

7.3.2不穩(wěn)定因素的判斷算法

7.3.3窮舉的結果

7.4二部圖與二分匹配

7.4.1*大匹配與匈牙利算法

7.4.2帶權匹配與Kuhn-Munkres算法

7.5總結

7.6參考資料

第8章愛因斯坦的思考題

8.1問題的答案

8.2分析問題的數(shù)學模型

8.2.1基本模型定義

8.2.2線索模型定義

8.3算法設計

8.3.1窮舉所有的組合結果

8.3.2利用線索判定結果的正確性

8.4總結

8.5參考資料

第9章項目管理與圖的拓撲排序

9.1AOV網(wǎng)和AOE網(wǎng)

9.2拓撲排序

9.2.1拓撲排序的基本過程

9.2.2按照活動開始時間排序

9.3關鍵路徑算法

9.3.1什么是關鍵路徑

9.3.2計算關鍵路徑的算法

9.4總結

9.5參考資料

第10章RLE壓縮算法與PCX圖像文件格式

10.1RLE壓縮算法

10.1.1連續(xù)重復數(shù)據(jù)的處理

10.1.2連續(xù)非重復數(shù)據(jù)的處理

10.1.3算法實現(xiàn)

10.2RLE與PCX圖像文件格式

10.2.1PCX圖像文件格式

10.2.2PCX_RLE算法

10.2.3256色PCX文件的解碼和顯示

10.3總結

10.4參考資料

第11章算法與歷法

11.1格里歷(公歷)生成算法

11.1.1格里歷的歷法規(guī)則

11.1.2今天星期幾

11.1.3生成日歷的算法

11.1.4日歷變更那點事兒

11.2二十四節(jié)氣的天文學計算

11.2.1二十四節(jié)氣的起源

11.2.2二十四節(jié)氣的天文學定義

11.2.3VSOP-82/87行星理論

11.2.4誤差修正——章動

11.2.5誤差修正——光行差

11.2.6用牛頓迭代法計算二十四節(jié)氣

11.3農(nóng)歷朔日(新月)的天文學計算

11.3.1日月合朔的天文學定義

11.3.2ELP-2000/82月球理論

11.3.3誤差修正——地球軌道離心率修正

11.3.4誤差修正——黃經(jīng)攝動

11.3.5月球地心視黃經(jīng)和*后的修正——地球章動

11.3.6用牛頓迭代法計算日月合朔

11.4農(nóng)歷的生成算法

11.4.1中國農(nóng)歷的起源與歷法規(guī)則

11.4.2中國農(nóng)歷的推算

11.4.3一個簡單的“年歷”

11.5總結

11.6參考資料

第12章實驗數(shù)據(jù)與曲線擬合

12.1曲線擬合

12.2小二乘法曲線擬合

12.2.1*小二乘法原理

12.2.2高斯消元法求解方程組

12.2.3小二乘法解決“速度與加速度”實驗

12.3三次樣條曲線擬合

12.3.1插值函數(shù)

12.3.2樣條函數(shù)的定義

12.3.3邊界條件

12.3.4推導三次樣條函數(shù)

12.3.5追趕法求解方程組

12.3.6三次樣條曲線擬合算法實現(xiàn)

12.3.7三次樣條曲線擬合的效果

12.4總結

12.5參考資料

第13章非線性方程與牛頓迭代法

13.1非線性方程求解的常用方法

13.1.1公式法

13.1.2二分逼近法

13.2牛頓迭代法的數(shù)學原理

13.3用牛頓迭代法求解非線性方程的實例

13.3.1導函數(shù)的求解與近似公式

13.3.2算法實現(xiàn)

13.4參考資料

第14章計算幾何與計算機圖形學

14.1計算幾何的基本算法

14.1.1點與矩形的關系

14.1.2點與圓的關系

14.1.3矢量的基礎知識

14.1.4點與直線的關系

14.1.5直線與直線的關系

14.1.6點與多邊形的關系

14.2直線生成算法

14.2.1什么是光柵圖形掃描轉(zhuǎn)換

14.2.2數(shù)值微分法

14.2.3Bresenham算法

14.2.4對稱直線生成算法

14.2.5兩步算法

14.2.6其他直線生成算法

14.3圓生成算法

14.3.1圓的八分對稱性

14.3.2中點畫圓法

14.3.3改進的中點畫圓法——Bresenham算法

14.3.4正負判定畫圓法

14.4橢圓生成算法

14.4.1中點畫橢圓法

14.4.2Bresenham橢圓算法

14.5多邊形區(qū)域填充算法

14.5.1種子填充算法

14.5.2掃描線填充算法

14.5.3改進的掃描線填充算法

14.5.4邊界標志填充算法

14.6總結

14.7參考資料

第15章音頻頻譜和均衡器與傅里葉變換算法

15.1實時頻譜顯示的原理

15.2離散傅里葉變換

15.2.1什么是傅里葉變換

15.2.2傅里葉變換原理

15.2.3快速傅里葉變換算法的實現(xiàn)

15.3傅里葉變換與音頻播放的實時頻譜顯示

15.3.1頻域數(shù)值的特點分析

15.3.2從音頻數(shù)據(jù)到功率頻譜

15.3.3音頻播放時實時頻譜顯示的例子

15.4破解電話號碼的小把戲

15.4.1撥號音的頻譜分析

15.4.2根據(jù)頻譜數(shù)據(jù)反推電話號碼

15.5離散傅里葉逆變換

15.5.1快速傅里葉逆變換的推導

15.5.2快速傅里葉逆變換的算法實現(xiàn)

15.6利用傅里葉變換實現(xiàn)頻域均衡器

15.6.1頻域均衡器的實現(xiàn)原理

15.6.2頻域信號的增益與衰減

15.6.3均衡器的實現(xiàn)——仿Foobar的18段均衡器

15.7總結

15.8參考資料

第16章全局*優(yōu)解與遺傳算法

16.1遺傳算法的原理

16.1.1遺傳算法的基本概念

16.1.2遺傳算法的處理流程

16.2遺傳算法求解0-1背包問題

16.2.1基因編碼和種群初始化

16.2.2適應度函數(shù)

16.2.3SHOU*選擇算子設計與輪盤賭算法

16.2.4交叉算子設計

16.2.5變異算子設計

16.2.6這就是遺傳算法

16.3總結

16.4參考資料

第17章計算器程序與大整數(shù)計算

17.1哦,溢出了,出洋相的計算器程序

17.2大整數(shù)計算的原理

17.2.1大整數(shù)加法

17.2.2大整數(shù)減法

17.2.3大整數(shù)乘法

17.2.4大整數(shù)除法與模

17.2.5大整數(shù)乘方運算

17.3大整數(shù)類的使用

17.3.1與Windows的計算器程序一決高下

17.3.2最大公約數(shù)和最小公倍數(shù)

17.3.3用擴展歐幾里得算法求模的逆元

17.4總結

17.5參考資料

第18章RSA算法——加密與簽名

18.1RSA算法的開胃菜

18.1.1將模冪運算轉(zhuǎn)化為模乘運算

18.1.2模乘運算與蒙哥馬利算法

18.1.3模冪算法

18.1.4素數(shù)檢驗與米勒—拉賓算法

18.2RSA算法原理

18.2.1RSA算法的數(shù)學理論

18.2.2加密和解密算法

18.2.3RSA算法的安全性

18.3數(shù)據(jù)塊分組加密

18.3.1字節(jié)流與大整數(shù)的轉(zhuǎn)換

18.3.2PCKS與OAEP加密填充模式

18.3.3數(shù)據(jù)加密算法實現(xiàn)

18.3.4數(shù)據(jù)解密算法實現(xiàn)

18.4RSA簽名與身份驗證

18.4.1RSASSA-PKCS與RSASSA-PSS簽名填充模式

18.4.2簽名算法實現(xiàn)

18.4.3驗證簽名算法實現(xiàn)

18.5總結

18.6參考資料

第19章數(shù)獨游戲

19.1數(shù)獨游戲的規(guī)則與技巧

19.1.1數(shù)獨游戲的規(guī)則

19.1.2數(shù)獨游戲的常用技巧

19.2計算機求解數(shù)獨問題

19.2.1建立問題的數(shù)學模型

19.2.2算法實現(xiàn)

19.2.3與傳統(tǒng)窮舉方法的結果對比

19.3關于數(shù)獨的趣味話題

19.3.1數(shù)獨游戲有多少終盤

19.3.2目前*難的數(shù)獨游戲

19.4總結

19.5參考資料

第20章華容道游戲

20.1華容道游戲介紹

20.2自動求解的算法原理

20.2.1定義棋盤的局面

20.2.2算法思路

20.3自動求解的算法實現(xiàn)

20.3.1棋局狀態(tài)與Zobrist哈希算法

20.3.2重復棋局和左右鏡像的處理

20.3.3正確結果的判斷條件

20.3.4武將棋子的移動

20.3.5棋局的搜索算法

20.4總結

20.5參考資料

第21章A*尋徑算法

21.1尋徑算法演示程序

21.2Dijkstra算法

21.2.1Dijkstra算法原理

21.2.2Dijkstra算法實現(xiàn)

21.2.3Dijkstra算法演示程序

21.3帶啟發(fā)的搜索算法——A*算法

21.3.1A*算法原理

21.3.2常用的距離評估函數(shù)

21.3.3A*算法實現(xiàn)

21.4總結

21.5參考資料

第22章俄羅斯方塊游戲

22.1俄羅斯方塊游戲規(guī)則

22.2俄羅斯方塊游戲人工智能的算法原理

22.2.1影響評價結果的因素

22.2.2常用的俄羅斯方塊游戲人工智能算法

22.2.3PierreDellacherie評估算法

22.3PierreDellacherie算法實現(xiàn)

22.3.1基本數(shù)學模型和數(shù)據(jù)結構定義

22.3.2算法實現(xiàn)

22.4總結

22.5參考資料

第23章博弈樹與棋類游戲

23.1棋類游戲的AI

23.1.1博弈與博弈樹

23.1.2極大極小值搜索算法

23.1.3負極大極搜索算法

23.1.4“α-β”剪枝算法

23.1.5估值函數(shù)

23.1.6置換表與哈希函數(shù)

23.1.7開局庫與終局庫

23.2井字棋——*簡單的博弈游戲

23.2.1棋盤與棋子的數(shù)學模型

23.2.2估值函數(shù)與估值算法

23.2.3如何產(chǎn)生走法(落子方法)

23.3奧賽羅棋(黑白棋)

23.3.1棋盤與棋子的數(shù)學模型

23.3.2估值函數(shù)與估值算法

23.3.3搜索算法實現(xiàn)

23.3.4*終結果

23.4五子棋

23.4.1棋盤與棋子的數(shù)學模型

23.4.2估值函數(shù)與估值算法

23.4.3搜索算法實現(xiàn)

23.4.4*終結果

23.5總結

23.6參考資料

附錄A算法設計的常用技巧

A.1數(shù)組下標處理

A.2一重循環(huán)實現(xiàn)兩重循環(huán)的功能

A.3棋盤(迷宮)類算法方向遍歷

A.4代碼的一致性處理技巧

A.5鏈表和數(shù)組的配合使用

A.6“以空間換時間”的常用技巧

A.7利用表驅(qū)動避免長長的switch-case

附錄B一個棋類游戲的設計框架

B.1代碼框架的整體結構

B.2代碼框架的使用方法

算法的樂趣完整版pdf使用說明

1、下載并解壓,得出pdf文件

2、如果打不開本文件,請務必下載pdf閱讀器

3、安裝后,在打開解壓得出的pdf文件

4、雙擊進行閱讀

收起介紹展開介紹
  • 下載地址
算法的樂趣 pdf高清完整版

有問題? 點此報錯

發(fā)表評論

1人參與,1條評論
第1樓四川省成都市聯(lián)通網(wǎng)友發(fā)表于: 2022-10-19 11:13:19
6好厲害的書666666
0蓋樓(回復)