编程导论
epsilon 近似解和真实解相比应小于的一个常数。
牛顿-拉夫逊方法
数据类型
- 元组、有序,元素任意类型,不可改变
- 列表、可变
- 列表解析
- 列表克隆 list[:]
- 字典
测试
测试套件 == 输入集合
单元测试,集成测试
SAQ 软件质量保证小组
防御性编程:显示、隐示、持续、间断
异常和断言
未处理异常,
try ... except
异常元组: except(item1, item2);
异常作为控制流使用
类
type 类型,面向对象
使用抽像类定义函数
生成器
算法复杂度
概念复杂度 vs 计算复杂度
渐近表示 与 大 O 表示 法
常见 大O 表示复杂度
- 常数复杂度 O(n)
- 对数复杂度 O(logn)
- 线性复杂度 n
- 线性对数复杂度 n * logn
- 多项式复杂度 n^k k 为常数
- 指数复杂度 c^n c常数
一些简单算法与数据结构
高效算法很难发明,科学家整个生涯可能只解决了一个算法。
选择排序 n^2
归并排序 n*logn
合并原始问题分解出的简单问题
python 中的排序 TimSort
散列函数
大输入空间映射到小的输出空间。
python 可视化绘图 pylab
随机算法,概率,统计
牛顿力学,量子力学,
上帝不掷股子 --爱因斯坦的反驳
大数定律
随机波动
蒙特卡罗模拟
弹簧储能
背包问题 - 贪婪算法
局部最优解带来的全局最优解
图最优化
动态规划
机器学习
信躁比与特征向量,距离度量