编程的世界远不止条件和循环语句,程序员的人生应当是创造的舞台,往上走数学就必不可少。
我们不是为了数学而学数学,要和具体应用结合在一起,用多少学多少。
数学是工具而非问题,理解数学的工具属性就会自然而然地引出了数学学习中的另一个关键点,
那就是工具设计的出发点,也就是所谓的数学思想与数学逻辑。
比如线性代数与矩阵论是对具体对象的抽象表示与运算,比如概率论和数理统计是对不确定性及其定型定量表示的建模。
数学绝不仅仅是算术,把主要精力放在计算上未免因小失大
掌握基本的线性代数、矩阵论、概率论、数理统计知识足以应付日常使用,好高骛远有害无益。
学数学和学一门新技术一样,也有这样三个阶段:先用起来、了解原理、了解为什么
程序员的数学通常为4大类: 编程语句,数据结构,通用算法,机器学习算法
数学理论和编程实践的结合其实是“决裂”的,所以学习数学的时候,不能太功利。不要觉得今天学完明天就能用得上。
因为数学知识很抽象, 能够将这些基本概念和核心理论都搞懂搞透,那么面对系统框架设计、性能优化这些难题的时候,就能从更高的角度出发去解决问题,而不只是站在一个“熟练工”的视角,去增删改查。
求余数
举一个加密示例
假如我们要加密数字 612,根据刚才的规则,我们来试试。假设随机数我选择 50143。那百、十和个位分别加上这个随机数,就变成了50149 ,50144,50145。然后,三位分别除以 7 求余后得到 1,3,4 最终,我们可以得到加密后的数字就是 431。
因为加密的人知道加密的规则、商、求余所用的除数 7、所引入的随机数 50149。所以当拿到 431的时候,加密者就可以算出原始的数据是 612。
需要会数学的余数得到431,还需要会反推余数,得到答案612
归纳法
现实中的归纳法,是经验或样本的观察,按属性分类。
数学中的归纳法并不是通过经验或样本的观察,总结出事物的普遍特征和规律。是指的从第一步正确,第二步正确,第三步正确,一直推导到最后一步是正确的。
递归函数就可以体现归纳法,取上一步的值