•一本書玩透演算法,盡享演算法的箇中趣味
•涵蓋常用演算法結構與應用
在日常生活中演算法的應用處處可見,只是我們都忽略了它們在背後運作及協助。對於想要讓程式設計的實作與應用更上層樓,理解與活用演算法是不可少的基本實力。
本書所展開的這一段演算法之旅,會看到各種建構演算法的基礎方法,如貪婪法、分治法、動態規劃法,等等,也可以透過許多範例看到如何應用這些演算法來解決實際問題。透過對「愛因斯坦的思考題」「三個水桶等分水」「妖怪與和尚過河問題」等趣味智力題的電腦求解演算法設計,可領會到演算法設計的三個關鍵問題,以及對這些問題的處理方法,為以後解決這樣的問題提供舉一反三的基礎。
另外,本書活用專題範例中也有生活中的常見曆法計算,從中可會學到霍納法則的使用和求解一元高次方程式的牛頓反覆運算法;音訊播放機上跳動的頻譜,背後是離散傅立葉變換演算法;著名的PCX影像檔格式使用的RLE壓縮演算法是如此簡單有效;RSA加密演算法的光環之下是樸實的歐幾里得演算法、蒙哥馬利演算法和米勒-拉賓演算法;華容道遊戲求解的簡單窮舉演算法中還蘊藏著對棋盤狀態的雜湊演算法;人工智慧的電腦棋類遊戲中,也用到許多演算法和數學模型……遺傳演算法神秘不可測,但是用遺傳演算法求解0-1背包問題只用了60多行程式碼,真的就是這麼簡單。書中還更多精彩的應用實例正等著你來一探究境。
本書共分23章,從理解演算法的基礎與設計思維開始,配合工作與生活中常見的演算法應用專題,以輕鬆圖文,詳實的原理說明,搭配實際活用的範例程式碼,讓讀者學習之後有「原來如此!」的體會,並享受學習演算法與邏輯思考的許多樂趣。