改變世界的九大演算法 ─ 讓今日電腦無所不能的最強概念 (Algorithms That Changed the Future),ISBN 978-986-6031-55-7,經濟新潮社出版,約翰‧麥考米克 (John MacCormick) 著,陳正芬譯。
在三十年程式寫作的歷程,第一個學習的演算法是排序問題,我想這是所有程式設計員必經之路,從這裡我理解了,想要電腦處理事情,必須先想出處理事情的方法或是流程,這樣才有辦法寫程式,程式寫久了、寫多了、經驗豐富了,就沒有再畫流程圖,邊打程式一邊思考,只有遇到難解的問題,才會再次利用它釐清思路。
學生時代熟悉 BASIC 語言之後,就利用 CASIO FX-700P 寫橋牌叫牌程式,從這裡學到只要能建出一堆 IF ... THEN ...,就可以讓電腦有智慧判別事物,電腦的智慧就在這些程式碼逐漸堆積出來。
不過不是所有的程式都能被設計出來,
判斷性的程式是無法設計得盡善盡美,可能會有疏漏或是邏輯矛盾的地方,因為人想不出來的東西,程式也當然無法解決,不過我們還是可以獲得有用的部分解法。另外,有一點蠻詭異的地方,有些問題計算機能解它,但是要求解正確答案卻需要花幾百萬年時間,像是推銷員旅行問題 (Traveling Salesman Problem,簡稱 TSP),反而不是實務上能夠解決的,除非科學進步想出一套快速演算法解決。
作者以淺顯易懂的文字,深入說明下面九大領域的演算法:
搜尋引擎的索引 (search engine indexing)
網頁排序 (page rank)
公鑰加密 (public-key cryptography)
錯誤更正碼 (error-correcting codes)
模式辨識 (pattern recognition)
資料壓縮 (data compression)
資料庫 (databases)
數位簽章 (digital signature)
甚麼程式是不可能存在
讀後令我獲益良多,搞懂以前很多不會的地方,尤其是資料加密的部分,現在即使沒有程式庫,很多程式我也可以利用書中所提的原理來處理,強力推薦給程式設計師們細讀,
騎沈四傑2024年度總結
-
騎沈四傑指ichirou、馬拉錘、CEKU、cj6,由於ceku隱退,他的位置由jackchows頂替。 成員介紹
ichirou:facebook倉頡群組管理員,大馬倉友論壇管理員。I.明體作者。性情暴躁,智商偏低,因此常鬧笑話,多次摔跤。現已不敢隨便對倉頡規則發表意見。
馬拉錘:大馬倉友管理員,三代補完計...
3 天前
Error-Correcting Codes, 算是我在大學時,應用數學中學習抽象代數學最佳的應用。還記得線性碼,Reed-solomon code...用得都是很艱深的代數理論. 學校畢業 15年,只記得名稱,不記得內容了。
回覆刪除在這個章節,令我印象最深的是 (7,4) Hamming code,如果以後有機會在通訊雜訊紛亂的地方,我一定會運用它。
刪除太深的數學,會讓工程師不敢用它,這留給研究型的人繼續研究。