程式設計必修的數學課 | 被動收入的投資秘訣 - 2024年5月

程式設計必修的數學課

作者:結城浩
出版社:世茂
出版日期:2021年03月03日
ISBN:9789865408459
語言:繁體中文
售價:356元

學會寫程式,從數學思維與邏輯訓練開始
沒有艱難的數學式,
而是透過情境對話和關鍵提示來引導你的思考方向。
 
發掘數字規則、拆解複雜問題、提升分析能力……
幫助程式設計師強化學習程式,
也適合程式設計門外漢,
或是「一看見數學式就想跳過」的人!
★★臺灣大學資訊管理學系副教授 孔令傑 審訂推薦★★
 
  人類與程式的距離,
  只會愈來愈近。
  從網站設計、數據分析到人工智慧,
  都與程式設計密切相關。
  想要進入奧妙的程式世界,
  必須先體會數學的趣味與美!
  
  ★ 0不僅是用來描述「什麼都沒有」,更蘊含了「無即是有」的重要啟發。
  ★ 原來大海可以撈針!利用指數爆發的力量,可以幫你揪出犯人、鎖定目標。
  ★ 想要從複雜問題的重重迷霧中找到答案蹤跡,就先從「自己」身上尋找線索吧!
  ★ 看不到盡頭在哪?數學歸納法教你只要跨出兩步,就能走到「無窮」的彼端。
 
  用數學力開啟你對程式設計的想像,
  自學程式設計必備的數學工具讓你輕鬆get!
  學會寫程式,等同掌握了工作接案的熱門技能。
  你也可以是人生勝利組!
 
強師推薦
 
  楊宗穎 │ 北一女中數學科老師

作者簡介
 
結城 浩
 
  1963年生。2014年獲得日本数学会出版賞。執筆寫作有關程式語言、設計模式、密碼、數學等領域的入門書。最新著作是「數學女孩系列」。是一個最喜歡巴哈的「賦格的藝術」作品的新教基督徒。出版有2011《數學女孩/費馬最後定理》、2012《數學女孩/哥德爾不完備定理》、2013《數學女孩/隨機演算法》、2014《數學女孩/伽羅瓦理論》(世茂出版)、2016—2017《數學女孩秘密筆記》系列。
 
譯者簡介
 
衛宮紘
 
  清華大學原子科學院學士班畢。現為自由譯者。譯作有《上司完全使用手冊》(東販)、《超慢跑入門》(商周)、《男人懂了這些更成功》(潮客風)、《世界第一簡單電力系統》(世茂)等。
 
  賜教信箱:[email protected]

第1章 0的故事
本章要學習的東西
小學一年級的回憶
十進制
二進制
進位計數法
指數定律
0 發揮的功用
人類的極限與結構的發現
本章學到的東西

第2章 邏輯
本章要學習的東西
為什麼邏輯重要?
乘車票價問題沒有─遺漏且互斥的分割
建構複雜的命題
笛摩根定律
卡諾圖
含有未定義的邏輯
本章學到的東西

第3章 剩餘
本章要學的東西
星期數問題(1)
星期數問題(2)
乘方問題
黑白棋通訊
尋找戀人問題
榻榻米鋪滿問題
一筆畫問題
本章學到的東西

第4章 數學歸納法
本章要學的東西
高斯少年求和
數學歸納法─推倒無數的多米諾骨牌
求奇數和─數學歸納法的例子
黑白棋問題錯誤的數學歸納法
程式與數學歸納法
本章學到的東西

第5章 排列組合
本章要學的東西114
什麼是計數─與整數的對應
種樹計算─不要忘記0
加法原理
乘法原理
置換
排列
組合
練習問題
本章學到的東西

第6章 遞迴
本章要學的東西
河內塔
再回來看階乘
費氏數列
巴斯卡三角形
遞迴圖形
本章學到的東西

第7章 指數爆發
本章要學的東西
什麼是指數爆發?
倍數遊戲─指數爆發產生的困難
二元搜尋─利用指數爆發檢索
對數─掌握指數爆發的工具
加密─以指數爆發保守祕密
如何處理指數爆發?
本章學到的東西

第8章 不可計算的問題
本章要學的東西
反證法
可數的
對角論證法
不可計算的問題
停機判斷問題
本章學到的東西

第9章 程式設計必修的數學課
回顧本書
所謂的解決問題

附錄1 邁向機器學習的第一步
附錄要學的東西
什麼是機器學習?
預測問題與分類問題
感知器
機器學習的「學習」
類神經網路
人類將會被機器取代嗎?
附錄學到的東西

附錄2 讀書指南
課外選讀
電腦科學

序言
 
  本書是寫給程式設計師的數學讀物。
  程式設計的基礎是電腦科學,電腦科學的基礎是數學。因此,學好數學有助於鞏固程式設計的基礎,寫出完善的程式。
 
  「但是,我就是不擅長數學。」有些讀者會這麼想吧,尤其「一看見數學式就想跳過」的讀者,應該也不在少數。老實說,如果書中出現數學式,我自己也會想要跳過不讀。
 
  本書會盡可能去除這些「想要跳過不讀的數學式」*,淺談相關的定義、定理及證明。
  本書主要是幫助程式設計師加深理解程式設計,期望各位能夠習得有助於程式設計的「數學思維」。

數學思維的例子 「數學思維」感覺過於抽象,以下就稍微舉例說明! 【條件分歧與邏輯】 在設計程式時,我們會根據條件來「分歧」處理,C、Java 等多數程式語言是使用if 敘述。若滿足條件,執行這邊的處理;若不滿足條件,執行那邊的處理,像這樣控制處理的流程。此時,我們是使用數學領域中的「邏輯」來控管程式,因此在程式設計上,必須熟習「且」「或」「非……」「若……則……」等邏輯要素。 【循環與數學歸納法】 為了處理大量資訊,我們會使用程式來執行「循環」。例如,使用for敘述能夠循環處理大量數據,而循環的基礎就是「數學歸納法」。 【區分討論與計數原理】 在「區分討論」複數條件、數據時,程式設計師得注意絕對不能有所遺漏。此時,加法原理、乘法原理、排列組合等「計數原理」可帶來幫助。這是程式設計師應該不斷磨練的數學工具。 此外,本書也可學習遞迴、指數、對數、餘數等基本且重要的思維。 人類與電腦的共同戰線 我們編寫程式是為了解決單靠人類無法解決的問題,程式設計師理解問題、編寫程式後,由電腦執行該程式來解決問題。 人類不擅長反覆執行,一下子就會覺得厭煩並犯下錯誤,但卻擅長解決問題;電腦則擅長反覆執行,但無法自行解決問題。 換言之,解決問題需要結合人類和電腦的力量。 遭遇困難問題時,單靠人類或電腦並無法解決,但結合兩者之力就能迎刃而解。本書的目的之一就是描述人機合作的情況。 然而,編寫程式有其困難性,即便人機合作仍有無法解決的問題。本書中,我們也會探究人類和電腦的極限。 期望各位讀完本書後,能夠對人類使用程式與電腦協作有更深刻的理解。


相關書籍