《编程数学》通过数学和算法方面的编程案例,介绍了数学方法对解决生活中问题的帮助,例如消防所选址问题、旅行商问题、蒙特卡罗模拟法、分形构造问题等。本书对提出的问题在开拓计算思维的基础上精巧求解,注重编程算法思路的引导与技巧的综合运用,并展示程序运行结果。
本书适合编程零基础者参考阅读。
第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 目的地数量众多时的出租车距离计算 / 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 利用遗传算法寻找最优路径1 / 057
3.2.5 利用遗传算法寻找最优路径2 / 058
第4章 蒙特卡罗模拟法 067
4.1 概率:抛掷硬币、掷骰子 / 068
4.1.1 抛掷硬币 / 068
4.1.2 掷骰子 / 068
4.2 用Octave实现蒙特卡罗模拟 / 069
4.2.1 蒙特卡罗模拟法 / 069
4.2.2 计算机骰子制作 / 070
4.2.3 飞镖游戏 / 073
4.2.4 图形重叠区域面积的求解 / 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章 分形构造问题 097
5.1 何谓分形 / 098
5.2 运用Octave以编码实现分形构造 / 098
5.2.1 本章中使用的Octave的语句 / 098
5.2.2 旋转矩阵 / 100
5.2.3 递归函数 / 102
5.2.4 三角形的旋转 / 104
5.2.5 四边形的旋转 / 106
5.2.6 六边形的旋转 / 109
5.2.7 分形树 / 112
5.2.8 直角三角形的相似比 / 115
5.2.9 等比数列以及等比数列的和 / 115
5.2.10 毕达哥拉斯树 / 116
参考文献 / 120