程序員的數學 程序员的数学

結城浩

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

商品描述

《程序員的數學》面向程序員介紹了編程中常用的數學知識,藉以培養初級程序員的數學思維。讀者無需精通編程,也無需精通數學,只需具備四則運算和乘方等基礎知識,就可以閱讀《程序員的數學》。
  書中講解了二進制計數法、邏輯、餘數、排列組合、遞歸、指數爆炸、不可解問題等許多與編程密切相關的數學方法,分析了哥尼斯堡七橋問題、高斯求和方法、漢諾塔、斐波那契數列等經典問題和算法。引導讀者深入理解編程中的數學方法和思路。
  《程序員的數學》適合程序設計人員以及編程和數學愛好者閱讀。

海報:

作者簡介

結城浩

日本技術作家和程序員。

在編程語言、設計模式、數學、

加密技術等領域,編寫了很多深受歡迎的入門書。

代表作有《數學女孩》系列、《程序員的數學》等。

目錄大綱

第1章0的故事——無即是有
本章學習內容
小學一年級的回憶
10進制計數法
什麼是10進制計數法
分解2503 
2進制計數法
什麼是2進制計數法
分解1100 
基數轉換
計算機中為什麼採用2進制計數法
按位計數法
什麼是按位計數法
不使用按位計數法的羅馬數字
指數法則
10的0次方是什麼
10—1是什麼
規則的擴展
對20進行思考
2 —1是什麼
0所起的作用
0的作用:佔位
0的作用:統一標準,簡化規則
日常生活中的0 
人類的極限和構造的發現
重溫歷史進程
為了超越人類的極限
本章小結
第2章邏輯——真與假的二元世界
本章學習內容
為何邏輯如此重要
邏輯是消除歧義的工具
致對邏輯持否定意見的讀者
乘車費用問題——兼顧完整性和排他性
車費規則
命題及其真假
有沒有“遺漏”
有沒有“重複” 
畫一根數軸輔助思考
注意邊界值
兼顧完整性和排他性
使用if語句分解問題
邏輯的基本是兩個分支
建立復雜命題
邏輯非——不是A 
邏輯與——A並且B 
邏輯或— —A或者B 
異或——A或者B(但不都滿足)
相等——A和B等
蘊涵——若A則B 
囊括所有了嗎
德•摩根定律
德•摩根定律是什麼
對偶性
卡諾圖
二燈遊戲
首先借助邏輯表達式進行思考
學習使用卡諾圖
三燈遊戲
包含未定義的邏輯
帶條件的邏輯與(&&)
帶條件的邏輯或(||)
三值邏輯中的否定(!)
三值邏輯的德?摩根定律
囊括所有了嗎
本章小結
第3章餘數——週期性和分組
本章學習內容
星期數的思考題(1)
思考題(100天以後是星期幾)
思考題答案
運用餘數思考
餘數的力量——將較大的數字除一次就能分組
星期數的思考題(2)
思考題(10100天以後是星期幾)
提示:可以直接計算嗎
思考題答案
發現規律
直觀地把握規律
乘方的思考題
思考題(1234567987654321)
提示:通過試算找出規律
思考題答案
回顧:規律和餘數的關係
通過黑白棋通信
思考題
提示
思考題答案
奇偶校驗
奇偶校驗位將數字分為兩個集合
尋找戀人的思考題
思考題(尋找戀人)
提示:先試算較小的數
思考題答案
回顧
鋪設草蓆的思考題
思考題(在房間裡鋪設草蓆)
提示:先計算一下草蓆數
思考題答案
回顧
一筆劃的思考題
思考題(哥尼斯堡七橋問題)
提示:試算一下
提示:考慮簡化一下
提示:考慮入口和出口
思考題答案
奇偶校驗
本章小結
第4章數學歸納法——如何征服無窮數列
本章學習內容
高斯求和
思考題(存錢罐裡的錢)
思考一下
小高斯的解答
討論一下小高斯的解答
歸納
數學歸納法——如何征服無窮數列
0以上的整數的斷言
高斯的斷言
什麼是數學歸納法
試著征服無窮數列
用數學歸納法證明高斯的斷言
求出奇數的和——數學歸納法實例
奇數的和
通過數學歸納法證明
圖形化說明
黑白棋思考題——錯誤的數學歸納法
思考題(黑白棋子的顏色)
提示:不要為圖所惑
思考題答案
編程和數學歸納法
通過循環表示數學歸納法
循環不變式
本章小結
第5章排列組合——解決計數問題的方法
本章學習內容
計數——與整數的對應關係
何謂計數
注意“遺漏”和“重複” 
植樹問題——不要忘記0 
植樹問題思考題
加法法則
加法法則
乘法法則
乘法法則
置換
置換
歸納一下
思考題(撲克牌的擺法)
排列
排列
歸納一下
樹形圖——能夠認清本質嗎
組合
組合
歸納一下
置換、排列、組合的關係
思考題練習
重複組合
也要善於運用邏輯
本章小結
第6章遞歸——自己定義自己
本章學習內容
漢諾塔
思考題(漢諾塔)
提示:先從小漢諾塔著手
思考題答案
求出解析式
解出漢諾塔的程序
找出遞歸結構
再談階乘
階乘的遞歸定義
思考題(和的定義)
遞歸和歸納
斐波那契數列
思考題(不斷繁殖的動物)
斐波那契數列
帕斯卡三角形
什麼是帕斯卡三角形
遞歸定義組合數
組合的數學理論解釋
遞歸圖形
以遞歸形式畫樹
實際作圖
謝爾平斯基三角形
本章小結
第7章指數爆炸——如何解決複雜問題
本章學習內容
什麼是指數爆炸
思考題(摺紙問題)
指數爆炸
倍數遊戲——指數爆炸引發的難題
程序的設置選項
不能認為是“有限的”就不假思索
二分法查找——利用指數爆炸進行查找
尋找犯人的思考題
提示:先思考人數較少的情況
思考題答案
找出遞歸結構以及遞推公式
二分法查找和指數爆炸
對數——掌握指數爆炸的工具
什麼是對數
對數和乘方的關係
以2為底的對數
以2為底的對數練習
對數圖表
指數法則和對數
對數和計算尺
密碼——利用指數爆炸加密
暴力破解法
字長和安全性的關係
如何處理指數爆炸
理解問題空間的大小
四種處理方法
本章小結
第8章不可解問題——不可解的數、無法編寫的程序
本章學習內容
反證法
什麼是反證法
質數思考題
反證法的注意事項
可數
什麼是可數
可數集合的例子
有沒有不可數的集合
對角論證法
所有整數數列的集合是不可數的
所有實數的集合是不可數的
所有函數的集合也是不可數的
不可解問題
什麼是不可解問題
存在不可解問題
思考題
停機問題
停機
處理程序的程序
什麼是停機問題
停機問題的證明
寫給尚未理解的讀者
不可解問題有很多
本章小結
第9章什麼是程序員的數學——總結篇
本章學習內容
何為解決問題
認清模式,進行抽象化
由不擅長催生出的智慧
幻想法則
程序員的數學