本書討論了一些源自日常生活的數(shù)學(xué)問題,用數(shù)學(xué)思維和計算機思維,講解了巧妙的解題思路。一個個看似簡單的問題,細究后卻發(fā)現(xiàn)別有洞天。本書會帶領(lǐng)讀者一起來到數(shù)學(xué)研究的前沿陣地,享受思考的樂趣,感受數(shù)學(xué)的奧妙。讀者在探究問題的過程中,可以學(xué)習(xí)和培養(yǎng)巧妙的數(shù)學(xué)思維和計算機思維,靈活應(yīng)用知識,用四兩撥千斤之巧力去解決生活、學(xué)習(xí)以及工程問題。
本書是一本標新立異又具有思想深度的思維訓(xùn)練書,適合理工科專業(yè)的本科生、研究生,以及對數(shù)學(xué)、計算機有興趣的讀者閱讀。
1.Facebook研究科學(xué)家、知乎數(shù)學(xué)等領(lǐng)域答主王赟力作
2.可以入選大廠面試題的題目
一個個看似簡單的問題背后,蘊含著并不簡單的原理
3.教你像科學(xué)家一樣思考問題
通過嚴謹?shù)乃季S訓(xùn)練,拓展你的思考深度
4.讓你輕松有趣地學(xué)好數(shù)學(xué)
示例生動,語言風趣,助你輕松理解高深的知識點
5.全彩印刷,輔以大量精巧的圖畫
視覺體驗更佳,核心內(nèi)容一目了然
王赟
Facebook語音組研究科學(xué)家。2006至2010年就讀于清華大學(xué)電子工程系,并進入美國卡內(nèi)基梅隆大學(xué)(CMU)學(xué)習(xí);2010至2018年于卡內(nèi)基梅隆大學(xué)計算機學(xué)院語言技術(shù)研究所攻讀博士學(xué)位,主攻方向為語音識別、音頻事件檢測。曾于2004年、2005年參加全國信息學(xué)奧林匹克競賽(NOI),并分別獲得銅牌、銀牌;此后曾輔導(dǎo)多名同學(xué)參加互聯(lián)網(wǎng)公司的面試。于業(yè)余時間自學(xué)了日語、韓語、西班牙語、法語、越南語5門外語及中古漢語,并制作了安卓應(yīng)用“漢字古今中外讀音查詢”。日常活躍于知乎,擅長回答數(shù)學(xué)、計算機、語言類問題,并在知乎專欄發(fā)表多篇優(yōu)質(zhì)文章。
第 一章 一道彈性碰撞的物理題,結(jié)果為什么會出現(xiàn)π? 1
1.1 碰撞的滑塊 1
1.2 隱藏的橢圓 3
1.3 把橢圓 “捏” 成圓 5
第二章 超級任務(wù)與一致收斂 8
2.1 Ross-Littlewood 悖論 8
2.2 逐點收斂與一致收收斂 9
第三章 怎樣在球面上 “均勻” 排列許多點? 13
3.1 神奇的斐波那契網(wǎng)格 13
3.2 從平面點陣入手 19
3.2.1 連分式與丟番圖逼近 20
3.2.2 模式與模式圖 22
3.2.3 連分式中的大項對模式的影響 30
3.2.4 斐波那契網(wǎng)格為什么混亂又密集? 32
3.2.5 總結(jié) 36
3.3 回到球面點陣 37
第四章 一道 “小黃鴨” 概率題及其有趣擴展 40
4.1 “小黃鴨” 原題 40
4.2 高維情況初探 44
4.3 高維情況再探 48
4.4 高維情況的解決 54
4.5 編程驗證 30
第五章 “賭徒” 的征程 66
5.1 引子 66
5.2 遞推法的困境 68
5.3 鞅的停時定理 75
5.4 會長大的籠子 80
5.5 靠譜的譜分析 83
5.6 尾聲 88
第六章 一種錯誤的洗牌算法,以及亂排常數(shù) 90
6.1 亂排常數(shù)的起源 90
6.2 亂排常數(shù)的推導(dǎo) 95
6.3 亂排常數(shù)的簡潔形式 101
6.4 亂排常數(shù)的幾個推廣 103
第七章 用位運算速解 n 皇后問題 108
7.1 解法一: 步步回眸 109
7.2 解法二: 雁過留痕 111
7.3 解法三: 以一當百 113
7.4 解法四: 彈無虛發(fā) 116
7.5 解法五: 精益求精 119
7.6 總結(jié) 120
第八章 如何不重復(fù)地枚舉 24 點算式? 122
8.1 樸素的枚舉法 122
8.1.1 算式的表示方式 123
8.1.2 樸素的枚舉算法 125
8.1.3 算式重復(fù)的統(tǒng)計 126
8.1.4 算式重復(fù)的原因 127
8.2 避免由交換律、結(jié)合律、獨立運算順序不唯一造成的重復(fù) 129
8.2.1 避免由 “交換律” 造成的重復(fù) 129
8.2.2 避免由 “結(jié)合律” 造成的重復(fù) 130
8.2.3 避免由 “獨立運算順序不唯一” 造成的重復(fù)133
8.2.4 小結(jié) 135
8.3 避免由去括號、反轉(zhuǎn)減號造成的重復(fù) 136
8.3.1 避免由 “去括號” 造成的重復(fù) 137
8.3.2 避免由 “反轉(zhuǎn)減號” 造成的重復(fù) 138
8.3.3 總結(jié) 143
第九章 Sprague-Grundy 定理是怎么想出來的? 145
9.1 游戲介紹 145
9.2 策梅洛定理 148
9.3 游戲狀態(tài)的組合 149
9.4 Sprague-Grundy 數(shù)的提出 151
9.5 狀態(tài)組合時 Sprague-Grundy 數(shù)的運算規(guī)則 154
9.5.1 規(guī)則的發(fā)現(xiàn) 154
9.5.2 規(guī)則的證明 156
9.6 Sprague-Grundy 定理的完整表述 157
第十章 小算法題,大應(yīng)用:如何 “掰平” 一個不單調(diào)的序列? 159
10.1 如何 “掰平” 一個不單調(diào)的序列? 159
10.1.1 Matlab 的掰乎算法 160
10.1.2 高效的掰平算法 162
10.2 “掰平” 算法的應(yīng)用: multi-dimensional scaling 163
10.3 附記 168
第十一章 二叉樹怎樣序列化才能重建? 169
11.1 幾種常見的序列化方法 169
11.1.1 僅使用一種遍歷的序列化方法 169
11.1.2 使用兩種遍歷的序列化方法 170
11.1.3 二叉搜索樹 (BST) 的序列化方法 173
11.2 二叉樹序列化能夠重建的充分條件 175
11.3 “不含重復(fù)元素” 的必要性探討 176
參考文獻 180