-
>
決戰(zhàn)行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優(yōu)實踐之路
-
>
第一行代碼Android
-
>
深度學習
-
>
Unreal Engine 4藍圖完全學習教程
-
>
深入理解計算機系統(tǒng)-原書第3版
-
>
Word/Excel PPT 2013辦公應用從入門到精通-(附贈1DVD.含語音視頻教學+辦公模板+PDF電子書)
程序員數(shù)學從零開始 版權信息
- ISBN:9787301168554
- 條形碼:9787301168554 ; 978-7-301-16855-4
- 裝幀:70g膠版紙
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>>
程序員數(shù)學從零開始 本書特色
1.理解為主 本書以理解優(yōu)先為出發(fā)點,采用講故事和舉例子的方式展開每一章的內(nèi)容;不強調概念,對于某些相近的名詞,只強調通過上下文“意會”,而不追究嚴格意義上的概念。 2.注重原理 本書詳細討論了每一個算法原理,對于某些數(shù)學背景較深的算法,會講述必要的數(shù)學知識作為鋪墊,在進行公式推導時也會盡可能詳細地描述推導過程。 3.示例詳盡 本書每一個算法都配有代碼示例,有些章節(jié)會通過示例逐步對算法進行擴充并完善代碼實現(xiàn),使讀者能夠通過示例進一步了解算法。 4.圖片豐富美觀 一圖勝千言,全書包含270余幅插圖,用于形象地解釋語言難以描述的過程,同時也有助于增加閱讀的趣味性。
程序員數(shù)學從零開始 內(nèi)容簡介
本書從人們身邊常見的整數(shù)講起,逐步深入,介紹了數(shù)論、計數(shù)、圖論、機器學習等領域的一些典型算法及其原理,尤其是算法背后的數(shù)學原理,可以讓讀者對這些算法有更深入的理解。 本書分為11章,涵蓋的主要內(nèi)容有整數(shù)的素因子分解、輾轉相除、更相減損、擴展歐幾里得算法和Karastuba算法; 密碼體制和RSA體制的加密原理;遞歸與分治算法、動態(tài)編程技術、特征方程和特征根;算法復雜度分析、大O和大Θ的意義;窮舉法、深度優(yōu)先搜索、廣度優(yōu)先搜索、貪心策略;A?搜索算法;遺傳算法;網(wǎng)絡流、增廣路徑優(yōu)選流算法;很小二乘法的原理、線性回歸、非線性回歸;基于正態(tài)分布的異常檢測、局部異常因子算法;P/NP問題。 本書內(nèi)容通俗易懂,案例豐富,實用性強,立足于詳細解釋算法的原理,尤其是算法背后的數(shù)學原理,適合于有一定 編程基礎和算法基礎的讀者進階閱讀,也適合 Python程序員、Java程序員等其他編程愛好者閱讀。
程序員數(shù)學從零開始 目錄
1.1學生的代碼和老師的代碼2
1.2整除和余數(shù)3
1.3素數(shù)5
1.4整數(shù)分解8
1.5*大公約數(shù)11
1.6青蛙約會16
1.7*小公倍數(shù)20
1.8哥德巴赫猜想猜的是什么?22
1.9整數(shù)比自然數(shù)更多嗎?23
1.10全體實數(shù)比±1之間的實數(shù)更多嗎?23
1.11大整數(shù)的乘法24
1.12小結29
第2章密碼疑云(數(shù)論)
2.1密碼簡史31
2.2被竊聽與被冒充33
2.3密碼體制34
2.4數(shù)字簽名38
2.5數(shù)字證書40
2.6RSA體制40
2.7攻破心的壁壘49
2.8來自量子計算的挑戰(zhàn)50
2.9小結51
第3章遞歸的邏輯(計數(shù))
3.1遞歸關系式54
3.2不斷繁殖的兔子——遞歸關系模型54
3.3遞歸關系的基本解法57
3.4遞歸算法61
3.5動態(tài)編程62
3.6遞歸與分治64
3.7打印一棵二叉樹69
3.8分形之美73
3.9米諾斯的迷宮78
3.10小結87
第4章O和大Θ(算法復雜度)
4.1算法分析89
4.2運行比較法91
4.3數(shù)學分析法91
4.4大O 96
4.5大Θ101
4.6二分查找有多快?103
4.7跨床大橋能完成嗎?105
4.8冒泡排序真的慢嗎?108
4.9小結112
第5章搜索的策略(搜索算法)
5.1盲目搜索114
5.2八皇后問題115
5.3貪心策略122
5.4小偷的背包122
5.5騎士旅行126
5.6覲天寶匣上的拼圖134
5.7小結142
第6章*短路徑(A搜索)
6.1A搜索144
6.2通往基地的捷徑147
6.3再戰(zhàn)覲天寶匣162
6.4小結170
第7章退而求其次(遺傳算法)
7.1小偷又來了172
7.2遺傳算法172
7.3橢圓中的*大矩形184
7.4宿管員的煩惱189
7.5小結211
第8章網(wǎng)絡流(圖論)
8.1基本概念和術語213
8.2尋找*大流218
8.3補給線上的攻防戰(zhàn)227
8.4姜子牙的糧道232
8.5緩解擁堵的高速公路234
8.6皇家飛行員的匹配236
8.7小結239
第9章擬合的策略(*小二乘法)
9.1問題的源頭241
9.2*小二乘法242
9.3線性回歸249
9.4非線性問題252
9.5中國人口總量的線性擬合260
9.6正態(tài)分布的擬合曲線264
9.7小結267
第10章異常檢測(半監(jiān)督學習和無監(jiān)督學習)
10.1監(jiān)督學習不靈了269
10.2基于一元正態(tài)分布的異常檢測270
10.3基于多元正態(tài)分布的異常檢測276
10.4局部異常因子算法285
10.5小結295
第11章淺談P/NP問題(非確定性問題)
11.1水滸英雄卡的故事297
11.2這些奇怪的名字298
11.3如何面對NP問題301
11.4如果P=NP305
11.5小結306
附錄
A同余和模運算307
B切割圖片的代碼308
C拉格朗日乘子法310
D多元線性回歸的推導過程311
E多元函數(shù)的泰勒展開314
F*大似然原理315
程序員數(shù)學從零開始 節(jié)選
第1章重新認識整數(shù)(整數(shù)分解) 整數(shù)的概念來源于計數(shù),它帶有很多樸素、自然的性質。本章從整數(shù)分解的角度重新看待整數(shù),詳解了整數(shù)的素因子分解及其應用,并通過歐幾里得算式介紹了輾轉相除法、更相減損術和Karastuba算法的原理。 整數(shù)的概念來源于計數(shù),它帶有很多樸素、自然的性質。結繩記事(圖11)大概是整數(shù)*早的應用,它發(fā)生在語言產(chǎn)生以后、文字出現(xiàn)之前的漫長歲月里!吨芤·系辭》云:“上古結繩而治”;《春秋左傳集解》云:“古者無文字,其有約誓之事,事大大其繩,事小小其繩,結之多少,隨揚眾寡,各執(zhí)以相考,亦足以相治也! 再看漢字中的“數(shù)”,從婁從攴(圖12)。攴是以手持杖,婁是打了很多繩結的木棍,合起來就是拿著手杖去數(shù)繩子上有多少個繩結。數(shù)者,結繩而記之也。 圖11結繩記事圖12古漢字中的“數(shù)” 可以毫不夸張地說,整數(shù)奠定了數(shù)學的基石。19世紀的數(shù)學家克羅內(nèi)克(Kronecker)曾經(jīng)說過:“上帝創(chuàng)造了整數(shù),其余都是人做的工作!闭麛(shù)的定義如此簡單自然,以至于總是讓人忘記它背后的復雜。本章將從分解的視角重新認識整數(shù)。 1.1學生的代碼和老師的代碼 編程總是充滿趣味,在學習了判斷和循環(huán)后就可以編寫一些有趣的代碼。記得我初學編程時,老師曾出過一個題目:找出兩個數(shù)的*大公約數(shù)。當時我在黑板上寫下了自己的實現(xiàn)方式。 代碼11學生的代碼01def gcd_stu(a, b):02if a < b:03a, b = b, a04result = \[i for i in range(1, b + 1) if b %i == 0 and a %i == 0\]05return result.pop()運行結果是正確的;氐阶簧,我為此高興了2分鐘。 后來老師寫出了另一個實現(xiàn)。 代碼12老師的代碼01def gcd_teacher(a, b):02if a < b:03a, b = b, a04return a if b == 0 else gcd_teacher(b, a %b)我的**反應是:“嗯?” 遺憾的是,我當時并沒有深究這段代碼,只是簡單地記住了這種方法,反正都是交給計算機計算,何必在乎快慢呢? 后來學了數(shù)據(jù)結構,知道了用大O評估算法效率,我這才開始重新審視那段尋找*大公約數(shù)的代碼——它實際上使用了傳說中的“輾轉相除”,要真正弄清楚其來龍去脈,還要從整數(shù)說起…… 1.2整除和余數(shù) 我們都曾經(jīng)用笨拙的聲音從1數(shù)到10,這大概是人生中**次接觸數(shù)學,稍大一點后懂得了零的概念,再后來知道了還有負數(shù)……這些美好的記憶都有整數(shù)相伴左右。隨著年齡的增長和知識的擴充,我們知道了更多關于整數(shù)的知識,其中就包括整除和余數(shù)。 1.2.1歐幾里得算式 數(shù)學中是以數(shù)軸分段的方式定義整除的,如果n是一個正整數(shù),那么可以用n的倍數(shù)將數(shù)軸分成很多段,如圖13所示。 圖13用n的倍數(shù)將數(shù)軸分成很多段 如果將另一個整數(shù)m放在數(shù)軸上,那么m將正好位于qn和(q+1)n之間,其中q也是一個整數(shù),如圖14所示。 圖14m位于qn和(q+1)n之間 如果m正好是n的整數(shù)倍,那么m=qn;否則可以寫成m=qn+r的形式,其中qn是位于m左側*近的n的整數(shù)倍,r是qn到m的整數(shù)距離。如果把兩種情況合并,那么對于任意整數(shù)m和n,且n≠0,總是可以寫成下面的形式: m=qn+r,0≤r對于特定的n來說,m的表達是唯一的,這種表達式叫作歐幾里得算式,也叫作除法算式。 看上去很復雜,其實歐幾里得算式有更常見的描述:如果m和n都是整數(shù),且n≠0,那么總是存在整數(shù)q和r,0≤rm÷n=q……r 其中q是商,r是余數(shù),如果r=0,則稱m能夠被n整除,或稱n能整除m,記作n|m,其中“|”是整除符號?梢,歐幾里得算式只不過是從代數(shù)上解釋了整除和余數(shù)。 乘法和除法互為逆運算,把歐幾里得算式寫成乘法就變成了m的唯一的表達式: m=qn+r 示例11找出q和r(1)m=10,n=3; (2)m=3,n=10; (3)m=-11,n=5。 前兩個比較簡單。 (1)10=3×3+1,q=3,r=1。 (2)3=10×0+3,q=0,r=3。 圖15在計算機 上計算-11%5第三個可能會出點差錯。 (3)-11=5×(-2)-1,q=-2,r=-1。 在計算機上計算-11%5,結果如圖15所示。 看來計算機認為是另一種答案:-11=5×(-3)+4,q=-3,r=4。 整除的定義終于顯現(xiàn)出作用了,余數(shù)的取值范圍是0≤r1.2.2整除的性質 如果a、b、c都是整數(shù),則有以下3個被人們熟知的關于整除的性質。 性質1.1 如果a|b且a|c,則a|(b+c)。 性質1.2 如果a|b,則a|cb。 性質1.3如果a|b且b|c,則a|c。 注:由于0不能作為除數(shù),所以a|b包含的默認條件是a≠0。 此外,還有一個推論:如果a、b、c都是整數(shù),當a|b且a|c時,對于任意整數(shù)m和n,都有a|(mb+nc)。 除法和乘法互為逆運算,這些性質和推論其實都是根據(jù)乘法的分配律和結合律推導而來的,以性質1.1為例: ab and acb=pa,c=qa b+c=pa+qa=(p+q)a p+q是一個整數(shù),根據(jù)歐幾里得算式對整除的定義,得出a|(b+c)。
程序員數(shù)學從零開始 作者簡介
孫博,蘇州工業(yè)園區(qū)高技能領軍人才,擅長人工智能、機器學習、算法和軟件結構設計等,曾在CSDN等多個知名博客網(wǎng)站發(fā)表多篇技術文章,深受讀者的喜愛。
- >
羅曼·羅蘭讀書隨筆-精裝
- >
小考拉的故事-套裝共3冊
- >
姑媽的寶刀
- >
中國人在烏蘇里邊疆區(qū):歷史與人類學概述
- >
企鵝口袋書系列·偉大的思想20:論自然選擇(英漢雙語)
- >
唐代進士錄
- >
【精裝繪本】畫給孩子的中國神話
- >
山海經(jīng)