程序员的数学

程序员的数学

这应该是叫初、中等数学在计算机中的应用。有初中数学基础就可以理解。我数学差,还是带来一些思想上的更新。按照章节总结如下:

0

  • 计数系统引入0,可以用来进行占位和统一标准,简化规则。
  • 在实践当中零可以用来表示没有信息,没有效果或不起作用,这样就统一了标准,简化了编程的规则。

逻辑

  • 命题、真假、与、或、非、异或、蕴含、相等等概念,
  • 文氏图用来理解逻辑,
  • 卡诺图用来简化复杂的逻辑。
  • 德摩根公式用于转换逻辑表达式。
  • 逻辑的完整性和排他性对编程是比较重要的。

余数

  • 余数可以用于大数据计算找规律,
  • 奇偶校验,
  • 分组。
  • 草席问题证明不可行,简单判明了不成立的条件;
  • 12个月前的恋人的题目进行分组,简化了步骤;
  • 七桥问题,将生活当中的问题转化为奇偶点的数目问题。
  • 余数和分组使需要反复验证的问题得以轻松进行解决。

归纳

对数列进行归纳,找出公式可用于快速计算,可将大问题分解成n个同类同规模的小问题,

排序

加法,乘法,置换排列组合,可以找出问题的本质,可用于快速计算,并将其抽象化。

递归

汉诺塔、阶乘、伏波那切数列、杨辉三角、分型图。将问题分解成同类,但是不同规模的问题。找到递归结构,再递推计算。

指数

指数爆炸,折纸,搜索,对数,密码不以破解。

  • 对于指数问题,有四种处理方法:极力求解,近似求解,公式求解,概率求解。指数可以对复杂的问题进行极简化。

不可解

反正法、可数、对角论证法、不可解问题、停机问题。

最重要的问题

  • 就是认清模式,进行抽象化,由现实世界转化进数学世界,解决之后再由数学返回现实。
  • 注意的点是完整性,排他性,缩小问题的规模,认清结构,发现模式,抽象化,分组等。

附录 机器学习

  • 机器学习用来解决预测和分类问题
  • 输入和实际结果的目标构成训练数据
  • 使用训练数据对参数进行调整,成为训练好的模型,使用测试数据测试进行评价和对参数的调整。
  • 计算机的输入(或多个值构成向量),交给感知器(模型),参数各有权重,加权求和x,然后激励函数f将连续的值进行1/2的判断,使模拟量进入逻辑量。学习的过程是模型输出和目标进行比较,进而调整模型的参数。
  • 过拟合指的是训练数据表现良好,但是测试数据就变成差。
  • 损失函数:比较输出和目标的差的时候,用损失函数来比较两者差异的程度。比如平方和误差函数。
  • 参数和损失函数构成地势,然后用梯度下降寻找低点,梯度下降的步伐是学习率,最小的点就是最优的损失函数,最优的参数。
  • 参数多于三个时,用反向传播算法控制运算量的爆发,该算法微分计算查看权重参数变化如何影响输出结果。
  • 神经网络是将感知器好几层叠放在一块组成的。神经网络节点输出的不是二元单值,而是连续值,可进行微分计算。
  • 深度学习神经网络增加层数得到更深的模型。
  • 强化学习每个输出系统都提供反馈(奖励),参数根据反馈调整。
  • 人类作用:构建模型、确保数据可靠、解释结果、做出决策。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第1章 0的故事 计数法分为按位计数法和罗马计数法按位计数法常用的有2进制、8进制、10进制、16进制等几种。 理...
    BeauJiang阅读 7,753评论 2 8
  • 大部分程序员由于理工科的背景,有一些高数、线性代数、概率论与数理统计的数学基础。所以当机器学习的热潮来临的时候,都...
    vivo互联网技术阅读 3,325评论 0 0
  • 一、0的故事 ——无即是有 1、例子 按位计数法:无论是二进制还是十进制,一个数字的每一位代表有几个该位基位值。例...
    Nautilus1阅读 7,190评论 0 1
  • 第1章 0的故事 按位计数法: 例: 5是个数,10是基数或底,3是指数。 10进制转换为2进制称为基数转换。 2...
    没关系都是神经病啊阅读 5,215评论 0 0
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 12,195评论 16 22