從基礎開始,一次搞定「演算法+數學」!:給數學苦手的演算法問題解決學習全攻略

米田優峻 著 馬毓晴 譯

  • 出版商: 臉譜
  • 出版日期: 2024-09-05
  • 定價: $650
  • 售價: 7.9$514
  • 語言: 繁體中文
  • 頁數: 288
  • 裝訂: 平裝
  • ISBN: 6263155280
  • ISBN-13: 9786263155282
  • 相關分類: Algorithms-data-structures
  • 立即出貨 (庫存 > 10)

買這商品的人也買了...

商品描述

日本最大程式競賽網站「AtCoder」最高等級紅色頭銜
2018、2019、2020連續三年國際資訊奧林匹亞競賽(IOI)金牌得主
2023年國際大學生程式設計競賽(ICPC)全球第九名
日本天才年輕程式設計師米田優峻,為所有程式設計者而寫的演算法+數學學習全指南

一口氣學會「必學的經典演算法」+「支撐演算法背後的數學知識」
從零開始,徹底鍛鍊活用演算法的必要數學力
從程式小白、程式設計師到程式設計競賽備賽選手,一本搞定!

這本書應該是最適合用來理解在程式設計時演算法與基礎數學之間密切關係的著作了。
──日本國立資訊學研究所副所長 河原林健一 專業推薦

在現代社會中,電腦程式已經成為我們生活中不可或缺的一部分,從電腦、智慧型手機、自駕車,再到最前端的AI技術等,無一沒有程式語言的參與。而在電腦程式強大的計算能力與多功能的背後,為了以最有效率的方式運算、解決問題,「演算法」扮演著關鍵性的角色。透過了解演算法,我們可以用更少的計算資源來解決各種問題,而不論資歷深淺,演算法及其背後的數學是所有程式設計者必得萬分熟悉的工具與知識。本書作者米田優峻正是希望藉由此書,讓更多人能夠掌握演算法的精髓。

出生於2002年、現就讀東京大學四年級的米田優峻,在中學一年級時著迷程式設計,在2018、2019、2020連續三年奪得國際資訊奧林匹亞競賽(IOI)金牌,創下驚人紀錄。2023年,他再度於國際大學生程式設計競賽(ICPC)獲得全球第九名佳績。透過本書,他將以深入淺出的文字,為讀者介紹各種經典演算法,並將深入探討與之相關的數學知識。這些數學知識不僅能夠幫助讀者更好地理解演算法的原理,還能提高讀者們應用演算法的能力。

本書特別適合兩類讀者:一類是希望藉由學習數學和演算法來增強程式設計能力的人,另一類則是希望在已有的數學基礎上,更深入理解演算法的人。

本書共有三大特色:
1. 使用簡單易懂的圖解和方法,讓初學者也能輕鬆掌握。
2. 提供了200道例題和演練題,幫助讀者鞏固所學知識。
3. 從中學到大學程度的數學知識,僅選取與演算法相關的重要部分進行講解。

無論你是要準備參加程式設計比賽,還是希望在工作或學習中應用演算法,這本書都能提供實用的知識和技巧,讓你活用於未來的學習與工作上,同時也將在閱讀過程中帶給你無窮樂趣。

作者簡介

<作者簡介>

作者╱米田優峻
2002年生。2021年筑波大學附屬駒場高中畢業,現就讀東京大學。
以「E869120」之名活躍於程式競賽領域,獲得日本國內最大的程式競賽網站「AtCoder」最高等級紅色頭銜,截至2020年三次獲得國際資訊奧林匹亞競賽(IOI)金牌。其他獲獎紀錄包括日本學生科學賞、數學自由研究比賽(MATHコン,日本數學檢定協會為國中小學生舉辦的競賽)等。
〈Red Corder親授提高專業競爭力指南〉(レッドコーダーが教える、競プロ上達ガイドライン)等文章刊登於Qiita(共同記錄程式編輯相關知識的線上服務),參與AtCoder數千人參加每天投稿一個新問題的企畫「競賽專業人士的90個典型問題」(競プロ典型90問)等,投入演算法和程式競賽推廣活動。

 

<譯者簡介>

譯者╱馬毓晴
交通大學電信研究所畢,曾在國際專利事務所擔任工程師,具有處理電機領域之日文專利的經驗。現職為軟體工程師。

 

<相關作者簡介>

審訂╱莊永裕
日本東京大學情報理工學博士。現任中央大學資工系副教授、台灣軟體工程學會理事。主要研究領域為程式語言、程式教育以及軟體工程。ACM、IEEE、IPSJ、SEAT、TELDCA學會會員。曾任東京大學情報理工學系研究科助理教授,旅居日本多年。譯有數本程式語言與軟體開發相關之日文書籍。日常興趣為旅行、攝影、小說與音樂。

目錄大綱

重要的網址統整
購買前請閱讀
前言

第1章 演算法與數學的密切關聯
1.1 演算法是什麼?
1.2 為什麼演算法需要數學?
1.3 關於本書的結構/透過本書的學習
1.4 本書探討的演算法
1.5 本書探討的數學知識及數學考察

第2章 用於演算法的數學基本知識
2.1 數的分類、文字式、二進制
節末問題
2.2 基本的運算及符號
節末問題
2.3 各式各樣的函數
節末問題
2.4 估計計算次數~全搜尋和二元搜尋~
節末問題
2.5 其他基本的數學知識
節末問題
專欄1 關於競技程式設計
專欄2 組合的全搜尋
第2章的統整

第3章 基本的演算法
3.1 質數判定法
節末問題
3.2 輾轉相除法
節末問題
3.3 情況數及演算法
節末問題
3.4 機率、期望值及演算法
節末問題
3.5 蒙地卡羅法~統計的思考方法~
節末問題
3.6 排序與遞迴的思考方法
節末問題
3.7 動態規劃法~遞迴式的利用~
節末問題
專欄3 陣列的二元搜尋
第3章的統整

第4章 進階的演算法
4.1 用電腦解決圖形問題  ~計算幾何學~
節末問題
4.2 階差及累積和
節末問題
4.3 牛頓法  ~試著進行數值計算吧~
節末問題
4.4 埃拉托斯特尼篩法
節末問題
4.5 使用圖形的演算法
節末問題
4.6 高效的餘數計算
節末問題
4.7 矩陣乘方  ~斐波那契數列的快速計算~
節末問題
專欄4 三角函數
專欄5 梯度下降法
第4章的統整

第5章 用以解決問題的數學考察
5.1 為什麼數學考察很重要?
5.2 考慮規律性
節末問題
5.3 著眼於奇偶
節末問題
5.4 熟練處理集合
節末問題
5.5 考慮極限
節末問題
5.6 分解成小問題
節末問題
5.7 考慮相加的次數
節末問題
5.8 考慮上界
節末問題
5.9 只考慮下一步 ~貪婪法~
節末問題
5.10 其他的數學考察
節末問題
專欄6 A*演算法
第5章的統整

最終確認問題
結語
致謝
推薦書籍
參考文獻