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