程序员的数学
这应该是叫初、中等数学在计算机利用。有初中数学根底就能够了解。我数学差,还是带来一些思维上的更新。依照章节总结如下:
0
- 计数零碎引入 0,能够用来进行占位和统一标准,简化规定。
- 在实际当中零能够用来示意没有信息,没有成果或不起作用,这样就对立了规范,简化了编程的规定。
逻辑
- 命题、虚实、与、或、非、异或、蕴含、相等等概念,
- 文氏图用来了解逻辑,
- 卡诺图用来简化简单的逻辑。
- 德摩根公式用于转换逻辑表达式。
- 逻辑的完整性和排他性对编程是比拟重要的。
余数
- 余数能够用于大数据计算找法则,
- 奇偶校验,
- 分组。
- 草席问题证实不可行,简略判明了不成立的条件;
- 12 个月前的恋人的题目进行分组,简化了步骤;
- 七桥问题,将生存当中的问题转化为奇偶点的数目问题。
- 余数和分组使须要重复验证的问题得以轻松进行解决。
演绎
对数列进行演绎,找出公式可用于疾速计算,可将大问题分解成 n 个同类同规模的小问题,
排序
加法,乘法,置换排列组合,能够找出问题的实质,可用于疾速计算,并将其抽象化。
递归
汉诺塔、阶乘、伏波那切数列、杨辉三角、分型图。将问题分解成同类,然而不同规模的问题。找到递归结构,再递推计算。
指数
指数爆炸,折纸,搜寻,对数,明码不以破解。
- 对于指数问题,有四种解决办法:竭力求解,近似求解,公式求解,概率求解。指数能够对简单的问题进行极简化。
不可解
反正法、可数、对角论证法、不可解问题、停机问题。
最重要的问题
- 就是认清模式,进行抽象化,由事实世界转化进数学世界,解决之后再由数学返回事实。
- 留神的点是完整性,排他性,放大问题的规模,认清构造,发现模式,抽象化,分组等。
附录 机器学习
- 机器学习用来解决预测和分类问题
- 输出和理论后果的指标形成训练数据
- 应用训练数据对参数进行调整,成为训练好的模型,应用测试数据测试进行评估和对参数的调整。
- 计算机的输出(或多个值形成向量),交给感知器(模型),参数各有权重,加权求和 x,而后激励函数 f 将间断的值进行 1 / 2 的判断,使模拟量进入逻辑量。学习的过程是模型输入和指标进行比拟,进而调整模型的参数。
- 过拟合指的是训练数据体现良好,然而测试数据就变成差。
- 损失函数:比拟输入和指标的差的时候,用损失函数来比拟两者差别的水平。比方平方和误差函数。
- 参数和损失函数形成地势,而后用梯度降落寻找低点,梯度降落的步调是学习率,最小的点就是最优的损失函数,最优的参数。
- 参数多于三个时,用反向流传算法管制运算量的暴发,该算法微分计算查看权重参数变动如何影响输入后果。
- 神经网络是将感知器好几层叠放在一块组成的。神经网络节点输入的不是二元单值,而是间断值,可进行微分计算。
- 深度学习神经网络减少层数失去更深的模型。
- 强化学习每个输入零碎都提供反馈(处分),参数依据反馈调整。
- 人类作用:构建模型、确保数据牢靠、解释后果、做出决策。