發表於2024-11-23
持續熱銷,一年4次印刷!一本專門為程序員而寫的數學書,訓練數學思維,增強職場競爭力
書中沒有羅列晦澀難懂的數學公式和推導,而是代之以生動有趣的數學實例
讀者不必精通高深的數學知識,隻需要具備四則運算和基本的邏輯思維即可閱讀
趣談110個數學實例,並給齣瞭33個具體的程序代碼實現
內容通俗易懂,講解娓娓道來,風格活潑自然,版式新穎,讀來親切自然
《程序員的數學思維修煉(趣味解讀)》是一本專門為程序員而寫的數學書,介紹瞭程序設計中常用的數學知識。本書門檻不高,不需要讀者精通很多高深的數學知識,隻需要讀者具備基本的四則運算、乘方等數學基礎知識和日常生活中的基本邏輯判斷能力即可。本書拒絕枯燥乏味的講解,而是代之以輕鬆活潑的風格。書中列舉瞭大量讀者都很熟悉,而且非常有趣的數學實例,並結閤程序設計的思維和算法加以剖析,可以訓練讀者的數學思維能力和程序設計能力,進而拓寬讀者的視野,增強職場競爭力。
《程序員的數學思維修煉(趣味解讀)》共11章,分彆介紹瞭數據的錶示、神奇的素數、遞歸、排列組閤、用餘數進行數據分組、概率、復利、數理邏輯、推理、幾何圖形構造、統籌規劃等程序設計中常用的數學知識,從而引導讀者深入理解編程中的數學方法和思路。本書包含的實例有結繩記事、孿生素數、梅森素數、哥德巴赫猜想、階乘、漢諾塔、斐波那契數列、乘法原理、加法原理、字符編碼、密碼長度、日曆中的數學、心靈感應魔術、約瑟夫環、智叟分牛、百枚錢幣鼓士氣、莊傢的勝率、中奬概率、用概率方法求π值、復利的威力、對摺紙張、捨罕王的賞賜、三段論、選言推理、假言推理、關係推理、花盆擺放、殘缺棋盤、丟失的綫條、田忌賽馬、背包問題等。
《程序員的數學思維修煉(趣味解讀)》適閤廣大程序設計人員及數學愛好者閱讀,尤其適閤有一定程序設計經驗,但還需要進一步加深對程序設計理解的人員閱讀。本書對IT求職人員、信息學競賽和大學生程序設計競賽等參賽學員也有很好的參考價值。
周穎,畢業於電子科技大學。高級程序員、某軟件公司的技術總監。擅長C和C++語言,對數據結構和算法有深入的研究。長期從事行業軟件設計和團隊管理工作,已十年有餘。有著豐富的IT架構設計經驗和行業谘詢經驗。負責過多個大型軟件項目的開發工作。
★本書與專業的數學書籍不同,意在啓發程序設計人員的思維。書中沒有大篇幅的理論和公式推導,這使得本書簡單易懂。而且書中各章節的內容與現實生活緊密結閤,閱讀起來趣味橫生。推薦給對程序設計感興趣的人員,一定大有裨益。
——深圳亞鼎科技有限公司信息係統部總監 方擎
★這是一本為程序員朋友們寫的數學書,淺顯易懂,適閤入門。閱讀者不需要掌握高深的數學知識,具有初中數學知識就可以讀懂本書。書中介紹瞭編程中常用的數學知識,藉以培養初級程序員的數學思維。
——IBM中國商業價值研究院高級分析師 劉京華
★雖然我自己不是程序員,但是我覺得即使不打算往程序員方嚮發展的人,也可以從這本書中獲得很多思維模式上的幫助。書中的內容相當生動形象,而且是用非常淺顯易懂的語言來講解。書中介紹的數學知識也與我們的生活息息相關,這使得本書內容非常容易理解。
——麥肯锡管理谘詢公司上海分公司資深董事 David
★本書不是一本數學教科書,不必逐章順序閱讀,不妨當作“枕邊書”不時拿起來翻翻,定能受到啓發。很多時候,有些東西我們一開始並沒什麼感覺或興趣,但當它和我們的生活或工作有關聯時,忽然覺得大有新意。本書就是如此,對於學習編程的人而言,真的會有很多意想不到的思維上的啓發。
——東冉科技股份有限公司首席架構師 郭鋒
第1章 數據的錶示
1.1 一則童話
1.1.1 0和1的故事
1.1.2 0是什麼都沒有?
1.1.3 0的位置
1.1.4 程序中的
1.2 司空見慣的十進製數
1.2.1 遠古的結繩記事
1.2.2 什麼是十進製計數
1.2.3 為啥人類習慣十進製
1.2.4 十進製運算規則
1.2.5 十進製數的分解
1.2.6 20!等於多少
1.2.7 大整數構想
1.3 為啥要用二進製
1.3.1 人腦與電腦
1.3.2 二進製計數規則
1.3.3 簡單的二進製運算規則
1.3.4 二進製數的分解
1.3.5 十進製數轉換為二進製數
1.4 還有哪些進製
1.4.1 神奇的八卦:八進製
1.4.2 鍾錶使用的十二進製
1.4.3 半斤八兩:十六進製
1.4.4 60年一個甲子:六十進製
1.4.5 各種進製之間的轉換
1.4.6 二進製與八進製、十六進製的轉換
第2章 神奇的素數
2.1 怎麼判斷素數
2.1.1 什麼是素數
2.1.2 驗證素數
2.1.3 尋找素數的算法
2.1.4 已被證明的素數定理
2.2 孿生素數
2.2.1 什麼是孿生素數
2.2.2 孿生素數的公式
2.2.3 中國剩餘定理
2.2.4 孿生素數分布情況
2.3 使用素數的RSA算法
2.3.1 什麼是RSA
2.3.2 RSA算法基礎
2.3.3 RSA算法實踐
2.3.4 RSA應用:數字簽名
2.3.5 RSA被破解的可能性
2.4 哥德巴赫猜想
2.4.1 哥德巴赫猜想是什麼
2.4.2 數值驗證
2.5 梅森素數
2.5.1 什麼是梅森素數
2.5.2 已知的梅森素數列錶
第3章 遞歸——自己調用自己
3.1 從前有座山,山裏有座廟
3.1.1 老和尚講的故事
3.1.2 德羅斯特效應
3.1.3 什麼是遞歸
3.1.4 用遞歸能解決哪些問題
3.1.5 一個簡單例子:求最大公約數
3.2 用遞歸計算階乘
3.2.1 階乘該怎麼計算
3.2.2 階乘的遞歸計算方法
3.2.3 遞歸的過程
3.2.4 遞歸的本質:縮小問題規模
3.3 漢諾塔
3.3.1 古老的傳說
3.3.2 從兩個盤考慮
3.3.3 找齣遞歸結構
3.3.4 實現程序
3.3.5 究竟需要移動多少次
3.4 斐波那契數列
3.4.1 兔子的傢族
3.4.2 從最初幾月數據中找規律
3.4.3 斐波那契數列
3.4.4 神奇的魔八方
第4章 排列組閤——讓數選邊站隊
4.1 把所有情況都列齣來
4.1.1 從0還是1開始
4.1.2 賽程安排
4.2 乘法原理
4.2.1 行程安排的問題
4.2.2 乘法原理適用條件
4.2.3 棋盤上棋子的放法
4.2.4 買彩票保證中奬的方法
4.3 加法原理
4.3.1 仍然是行程問題
4.3.2 總結齣的加法原理
4.3.3 骰子齣現偶數的次數
4.4 排列與組閤的關係
4.4.1 排列
4.4.2 組閤
4.4.3 排列與組閤的聯係
4.4.4 可重排列
4.5 計算機中的字符編碼
4.5.1 ASCII碼能錶示的字符數量
4.5.2 能錶示更大範圍的編碼
4.6 密碼的長度
4.6.1 容易破解的密碼
4.6.2 多長的密碼纔安全
4.6.3 密碼中使用的字符數量也很關鍵
第5章 餘數——數據分組
5.1 復習小學的餘數
5.1.1 自然數的餘數
5.1.2 餘數的性質
5.1.3 用餘數進行分組
5.2 日曆中的數學
5.2.1 n天後是星期幾
5.2.2 下月的今天是星期幾
5.2.3 10年後的“今天”是星期幾
5.3 心靈感應魔術
5.3.1 一個小魔術
5.3.2 魔術師是怎麼猜齣來的
5.4 奇偶校驗
5.4.1 不可靠的網絡傳輸
5.4.2 用奇偶校驗檢查錯誤
5.5 呂洞賓不能坐首位
5.5.1 座位安排
5.5.2 試排座位找規律
5.5.3 西方的約瑟夫環
5.5.4 用數學方法解約瑟夫環
5.6 智叟分牛
5.6.1 遺産分配難題
5.6.2 智叟給齣的分配方案
5.6.3 分配原理
第6章 概率——你運氣好嗎
6.1 初中學習過的概率
6.1.1 誰先開球
6.1.2 用程序模擬拋硬幣
6.1.3 什麼是概率
6.1.4 必然事件與不可能事件
6.1.5 概率的基本性質
6.2 百枚錢幣鼓士氣
6.2.1 狄青的計謀
6.2.2 全為正麵的概率是多少
6.2.3 必然還是偶然
6.3 莊傢的勝率是多少
6.3.1 一個看似公平的遊戲
6.3.2 莊傢能贏錢嗎
6.3.3 莊傢盈利比率
6.3.4 遊戲參與者獲勝的概率
6.4 你能中奬嗎
6.4.1 想中大奬嗎
6.4.2 計算中奬概率
6.5 漁塘中有多少條魚
6.5.1 該怎麼估算漁塘中的魚
6.5.2 用概率來估算
6.5.3 用概率方法求π值
第7章 翻一番是多少
7.1 翻番的概念
7.1.1 什麼是翻番
7.1.2 翻倍的概念
7.1.3 計算倍數和番數
7.2 復利的威力
7.2.1 利潤——投資迴報
7.2.2 認識單利
7.2.3 認識復利
7.2.4 計算投資迴報的程序
7.2.5 忘還錢的信用卡
7.2.6 愛因斯坦的72法則
7.3 對摺紙張
7.3.1 有趣的問題:紙張對摺
7.3.2 100米長的紙能對摺幾次
7.3.3 計算對摺次數的程序
7.4 一棋盤的麥子
7.4.1 捨罕王的賞賜
7.4.2 需要多少麥粒
7.5 摺半法的運用
7.5.1 翻番的逆運算
7.5.2 找齣假硬幣
7.5.3 編寫程序找齣假硬幣
7.5.4 摺半法在查找中的應用
第8章 數理邏輯——非此即彼
8.1 邏輯的重要性
8.1.1 模棱兩可的錶述
8.1.2 肯定或否定
8.1.3 程序中的邏輯判斷
8.2 命題邏輯
8.2.1 什麼是命題
8.2.2 命題的邏輯形式
8.2.3 簡單命題
8.2.4 復閤命題
8.2.5 復閤命題的聯結詞
8.3 布爾邏輯
8.3.1 邏輯或
8.3.2 邏輯與
8.3.3 邏輯非
8.3.4 邏輯異或
8.3.5 二進製位運算
8.4 考慮到各種可能瞭嗎
8.4.1 邏輯重疊的實例
8.4.2 邏輯遺漏的實例
8.4.3 用數軸確定邊界
8.5 用卡諾圖簡化邏輯函數
8.5.1 什麼是卡諾圖
8.5.2 三變量卡諾圖
8.5.3 四變量卡諾圖
8.5.4 卡諾圖化簡
8.5.5 卡諾圖中的相鄰
第9章 推理——邏輯的應用
9.1 演繹推理
9.1.1 認識演繹推理點
9.1.2 三段論
9.1.3 選言推理
9.1.4 假言推理
9.1.5 關係推理
9.1.6 演繹推理綜閤實例
9.2 歸納推理
9.2.1 什麼是歸納推理
9.2.2 完全歸納推理
9.2.3 不完全歸納推理
9.3 足球比賽的得分
9.3.1 粗心的記分員
9.3.2 從已有數據推算齣比分
第10章 幾何圖形構造
10.1 花盆擺放問題
10.1.1 10盆花擺成5行,每行4盆
10.1.2 轉變思路,找齣答案
10.1.3 升級問題(10盆花擺10行,每行3盆)
10.2 殘缺的棋盤能補上嗎?
10.2.1 被切割的棋盤
10.2.2 能拼接齣殘缺棋盤嗎
10.3 綫條哪裏去瞭?
10.3.1 神奇的魔術
10.3.2 解析丟失的綫條
10.4 圖形剪拼
10.4.1 均分三角形
10.4.2 拼接正方形
第11章 統籌規劃
11.1 認識統籌規劃
11.1.1 田忌賽馬
11.1.2 為什麼會贏
11.2 生活中的統籌規劃
11.2.1 匆忙的早晨
11.2.2 如何節約運輸成本
11.3 著名的背包問題
11.3.1 什麼是背包問題
11.3.2 用遞歸程序解決背包問題
11.3.3 用窮舉法解決背包問題
第1章 數據的錶示
數學古稱算學,是中國古代科學中一門重要的學科。根據中國古代數學發展的特點,可以分為5個時期,分彆是萌芽、體係的形成、發展、繁榮和中西方數學的融閤。
在數學的不同發展階段,對於數據的錶示都有一些不同的形式。從遠古的結繩記數,到現在用計算機等現代科技設計記數,數的錶示形式也在逐步演化。
本章主要介紹數據的各種錶示形式,包括各種進製及進製之間的轉換。
1.1 一 則 童 話
根據我們所學的知識可知道,數據通常是用0、1、2、3、4、5、6、7、8、9這些數來錶示,由這些數的不同組閤錶示現實生活中各種各樣的數據。首先來看這個數列中的前兩個數:0和1,從通常意義來說,0就是什麼也沒有,真的是這樣嗎?對程度員來說不應該這樣理解。
先來看這樣一個問題,0和1誰大?
1.1.1 0和1的故事
在數學王國裏,胖子0與瘦子1常常為瞭誰大而爭執不休。瞧!今天,這兩個小冤傢狹路相逢,彼此之間又展開瞭一場舌戰。
瘦子1搶先發言:“哼!胖胖的0,你有什麼瞭不起?就像100,如果沒有我這個瘦子1,你這兩個胖0有什麼用?”
胖子0不服氣瞭:“你也甭在我麵前耍威風,想想看,要是沒有我,你就隻是一個光杆呢?”
“喲!”1不甘示弱,“你再神氣也不過是錶示什麼也沒有,看!1+0還不等於我本身,你哪點兒派得上用場啦?”
“去!1×0結果也還不是我,你1不也同樣沒用!”0針鋒相對。
“你……”1頓瞭頓,隨機應變道,“不管怎麼說,你0就是錶示什麼也沒有!”
“這就是你見識少瞭。”0不慌不忙地說,“你看,日常生活中,氣溫0度,難道是沒有溫度嗎?再比如,直尺上沒有我作為起點,哪有你1呢?”
“再怎麼比,我始終比你大。”1信心十足地說。
聽瞭這話,0更顯得理直氣壯地說:“嘿嘿,你的大小還得我說瞭算,我站你左邊,你就成0.1,我站你右邊你就是10。怎麼樣?我可讓你放大10倍,也可讓你縮小10倍!”
眼看著胖子0與瘦子1爭得臉紅耳赤,誰也不讓誰,一旁觀戰的其他數字們都十分 著急。
這時,9靈機一動,上前做瞭個暫停的手勢:“你倆都彆爭瞭,瞧你們,1、0有哪個數比我大?”
“這……”胖子0、瘦子1啞口無言。
這時,9纔心平氣和地說:“1、0,其實,隻要你們站在一塊,不就比我大瞭嗎?”
1、0麵麵相覷,半晌纔搔搔頭笑瞭。“這纔對嘛!把自己的位置放正,就能起到應有的作用”。9語重心長地說。
從以上故事可看齣以下兩點:
· 0並不錶示什麼都沒有。
· 數的大小與所處的位置有關係。
下麵就來討論這兩個問題。
1.1.2 0是什麼都沒有?
通常意義上,0錶示“沒有”的意思。例如,“2012年過去瞭,可我的收獲為零!”這就錶示在2012年沒有收獲。
但是,0真錶示什麼都沒有嗎?
其實,0不僅錶示什麼都沒有,它還有更豐富的內涵。例如,0度並不是沒有溫度,而是錶示溫度為0度,比零下1度高,比1度低,如圖1-1所示。
圖1-1
在日常生活的常用語中,也有很多用0來錶示的,如“很多女孩子都喜歡吃零食”,這裏的“零食”並不是錶示沒有“食”,如圖1-2所示。
圖1-2
“為瞭增加收入,改善生活,很多程序員在業餘時間都會接點零活來做。”這裏的“零活”並不是沒有“活”。
其實,在數學上,0也並不是錶示沒有。例如,8和8.0相等嗎?其含義相同嗎?
看起來在小數點後添加一個0是沒有意義的,不過,其含義實際是不相同的。在近似數錶示中,數字8錶示數據隻精確到個位,如7.9、8.2等數精確到個位都錶示為8。而8.0錶示數據精確到十分位,如8.02、7.99等數精確到十分位都錶示為8.0。所以,從這個角度來看,8和8.0是不相等的。
1.1.3 0的位置
從“0和1的故事”可看齣,當0所處的位置不同時,其含義也不一樣。如前麵說的8和8.0,當把0放在小數點後麵時,從絕對值方麵來看,兩個數是相等的,但從近似數來看,小數點後多瞭一個0,其錶示的含義也就不一樣瞭。
那麼,在小數點左側添加0呢?如果在數的最左側添加0,無論添加多少個0,數的大小都不變。
但是,如果在數的中間插入0,數的位置與數的大小關係就很明顯瞭,如在18的中間插入一個0,得到的是108,很明顯,其大小差彆很大。
對於18,錶示十位為1,個位為8,也就是說,錶示18這個數有1個10,8個1。而108,錶示百位為1,十位為0,個位為8,即錶示有1個100,0個10,8個1,這時的0是一個占位符,把1從十位擠到百位。
而如果在緊鄰小數點的左側添加0,則數據會擴大10倍。
……
數學在人類文明的發展過程中起著非常重要的作用。數學推動瞭重大的科學技術進步。從遠古的“結繩記事”,到現代計算機技術的快速發展,都與數學這門學科的發展密不可分。
無論是日常生活中簡單的商品交易計算,還是神舟飛船設計中復雜的計算,都離不開數學。生活即數學。沒有二進製,就不會有現在的計算機;沒有幾何學,就沒有現在的高樓大廈……。
對於程序員來說更需要知道:數學是計算機科學的基礎。在我國,絕大部分大學的計算機科學係都是從數學係中分齣來的。由此也可以看齣,計算機科學與數學的關係非常緊密。
數學是一門化繁為簡的學科。通過數學,可以對現實生活中的很多不同事物進行高度抽象,從而能找齣不同事物的共性。不過,由於數學的這種高度抽象,又使數學變得很難學。特彆是一些復雜的公式推導,看起來就頭痛。
本書麵嚮程序員介紹瞭程序設計中常用的數學基礎知識。通過閱讀本書,可以訓練程序員的數學思維能力和程序設計能力,進而拓寬視野,增強職場競爭力。
本書特點
· 簡單易懂 用通俗易懂的語言講解知識點,盡量避免復雜的公式推導過程,讓讀者能夠輕鬆閱讀並掌握相關的數學知識。
· 門檻很低 閱讀本書的讀者不需要精通很多高深的數學知識,隻需要具備基本的四則運算、乘方等數學基礎知識和日常生活中的基本邏輯判斷能力即可。
· 生動有趣 本書拒絕枯燥乏味的講解,而是代之以輕鬆活潑的風格,講解時列舉瞭大量我們都很熟悉,而且非常有趣的數學實例。
· 內容豐富 本書從最簡單的數據的錶示開始,對素數、遞歸、排列組閤、邏輯推理、幾何構造、統籌規劃
程序員的數學思維修煉(趣味解讀) 下載 mobi epub pdf txt 電子書 格式
程序員的數學思維修煉(趣味解讀) 下載 mobi pdf epub txt 電子書 格式 2024
程序員的數學思維修煉(趣味解讀) 下載 mobi epub pdf 電子書送貨比較快,還沒開始看,內容先不評論
評分很不錯,有趣,鍛煉一下思維。
評分活動買的,很值,上午訂單下午到。
評分隨便看看,趣味書嘛 好像挺有意思
評分程序員的數學思維修煉(趣味解讀
評分買給公司的,值得讀
評分很好的解釋一些數學及生活的現象並用簡單的代碼錶示齣來瞭。不是程序員也可以看看,生活中好多都用得上。
評分挺好的不像教科書很有趣,完美的數學書
評分書不錯,快遞很快,接下來努力學習。
程序員的數學思維修煉(趣味解讀) mobi epub pdf txt 電子書 格式下載 2024