《編程數(shù)學》通過數(shù)學和算法方面的編程案例,介紹了數(shù)學方法對解決生活中問題的幫助,例如消防所選址問題、旅行商問題、蒙特卡羅模擬法、分形構(gòu)造問題等。本書對提出的問題在開拓計算思維的基礎(chǔ)上精巧求解,注重編程算法思路的引導與技巧的綜合運用,并展示程序運行結(jié)果。
本書適合編程零基礎(chǔ)者參考閱讀。
第1章 Octave的安裝和使用001
1.1 Octave的下載 / 002
1.2 Octave的安裝 / 004
第2章 消防所選址問題013
2.1 出租車距離的定義和例題 / 014
2.1.1 什么是出租車距離 / 014
2.1.2 出租車距離的計算方法 / 014
2.1.3 計算出租車距離 / 015
2.1.4 尋找X的最佳位置 / 016
2.1.5 引用坐標概念計算出租車距離 / 016
2.1.6 利用坐標計算出租車距離 / 017
2.1.7 將坐標一般化計算出租車距離 / 018
2.1.8 目的地數(shù)量眾多時的出租車距離計算 / 018
2.1.9 有沒有更簡單的方法 / 019
2.2 用Octave尋找消防所的最佳位置 / 019
2.2.1 本章中使用的Octave的語句 / 019
2.2.2 隨機點與特定點的出租車距離計算 / 026
2.2.3 尋找隨機向量中的最小值 / 029
2.2.4 尋找隨機矩陣中的最小值 / 031
2.2.5 尋找消防所的最佳位置 / 033
思考題 / 037
第3章 旅行商問題039
3.1 什么是旅行商問題 / 040
3.2 用Octave找出快遞的最短配送路徑 / 042
3.2.1 本章中使用的Octave的語句 / 042
3.2.2 尋找快速配送路徑 / 052
3.2.3 最近處鄰居算法 / 053
3.2.4 利用遺傳算法尋找最優(yōu)路徑1 / 057
3.2.5 利用遺傳算法尋找最優(yōu)路徑2 / 058
第4章 蒙特卡羅模擬法 067
4.1 概率:拋擲硬幣、擲骰子 / 068
4.1.1 拋擲硬幣 / 068
4.1.2 擲骰子 / 068
4.2 用Octave實現(xiàn)蒙特卡羅模擬 / 069
4.2.1 蒙特卡羅模擬法 / 069
4.2.2 計算機骰子制作 / 070
4.2.3 飛鏢游戲 / 073
4.2.4 圖形重疊區(qū)域面積的求解 / 075
4.2.5 隨機活動的國際象棋棋子的位置查找 / 081
4.2.6 一維線段上任意兩點之間的距離問題 / 085
4.2.7 兩點間距離的概率分布情況 / 088
4.2.8 二維空間中兩點間的距離問題 / 088
4.2.9 兩點間距離的概率分布情況 / 092
4.2.10 三維空間中兩點間的距離問題 / 092
第5章 分形構(gòu)造問題 097
5.1 何謂分形 / 098
5.2 運用Octave以編碼實現(xiàn)分形構(gòu)造 / 098
5.2.1 本章中使用的Octave的語句 / 098
5.2.2 旋轉(zhuǎn)矩陣 / 100
5.2.3 遞歸函數(shù) / 102
5.2.4 三角形的旋轉(zhuǎn) / 104
5.2.5 四邊形的旋轉(zhuǎn) / 106
5.2.6 六邊形的旋轉(zhuǎn) / 109
5.2.7 分形樹 / 112
5.2.8 直角三角形的相似比 / 115
5.2.9 等比數(shù)列以及等比數(shù)列的和 / 115
5.2.10 畢達哥拉斯樹 / 116
參考文獻 / 120