![](https://img-blog.csdnimg.cn/2020040717494898.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
程序员必修数学课
数学学习笔记,高级又有魅力
_为光
我生有涯愿无尽
展开
-
【程序员必修数学课】->基础思想篇->递归(下)->分而治之&从归并排序到MapReduce
递归(下)前言归并排序中的分治思想分布式系统中的分治思想1.数据分割和映射2.归约3.合并总结前言在上一篇中,我介绍了如何使用递归,来处理迭代法中比较复杂的数值计算。但是我们知道,有些迭代法并不是简单的数值计算,而是要通过迭代的过程进行一定的操作,过程更加复杂,需要考虑很多中间数据的分配或者保存。比如我在迭代法中提到的使用二分查找进行数据匹配,或者这篇文章里将要讲解的归并排序中的数据排序等等。在这种情况下,要怎么使用递归法呢?【程序员必修数学课】->基础思想篇->迭代法【程序员必修数学课原创 2020-09-06 16:26:58 · 334 阅读 · 0 评论 -
【程序员必修数学课】->基础思想篇->递归(上)->泛化数学归纳
递归前言如何在限定总和的条件下求加和?迭代法递归法前言在前几篇文章中我不断引用更改了国际象棋发明人被国王赏麦子的故事,这篇文章我还需要再借一下这两个人。舍罕王和宰相达依尔来到了现代,这次舍罕王聪明了,他对宰相说,“这次我不用麦子赏你了,我直接给你发钱。另外,我也不用棋盘了,我直接给你一大笔固定数额的钱。”宰相思考了一下,回答道:“没问题,陛下,就按照您的意愿。不过,我有一个小小的要求。能...原创 2020-09-06 09:11:12 · 433 阅读 · 0 评论 -
程序员必修数学课——专栏索引篇
前言有人说过,“如果你只想当一个普通的程序员,那么数学对你来说,并不重要。如果你的梦想是做一个顶级程序员,梦想着改变世界,那么数学对你来说就很重要了”。越往高处走,越能发现数学在编程中的重要性。数学学得好不好,将会直接决定一个程序员有没有发展潜力。往大了说,数学是一种思维模式,考验的是一个人归纳、总结和抽象的能力。 这同时也对应了你作为程序员解决问题的能力。如果编程语言是血肉,数学的思想和知识...原创 2020-04-16 18:47:22 · 394 阅读 · 0 评论 -
【程序员必修数学课】->基础思想篇->数学归纳法->如何用数学归纳提高代码效率
上一篇文章里,我说了数学中的迭代法,并用编程实现了国际象棋发明者的那个麦粒的计算问题,这篇文章我们就来看看数学归纳法。通过数学归纳法,我们能直接从理论上证明某个结论,从而避免很多计算,节约大量的计算资源和时间。平常我们说的归纳,就是从大量经验事实中找出普遍特征的认知方法。我在我的一篇文章里,介绍了模式识别和机器学习的区别,其中机器学习就是一种归纳的方法,是自下而上的,这也是人类的许多体系的构成方...原创 2020-04-16 18:24:48 · 389 阅读 · 0 评论 -
【程序员必修数学课】->基础思想篇->迭代法
迭代法Ⅰ 象棋&米粒-迭代法Ⅱ 编程求麦粒的数量Ⅲ 迭代法的应用① 求方程的精确或者近似解② 查找匹配记录Ⅰ 象棋&米粒-迭代法这里引用一个大家从小就听过的小故事。传说,印度的舍罕国王打算重赏国际象棋的发明人——大臣西萨·班·达依尔。这位聪明的大臣跪在国王面敢说:“陛下,请你在这张棋盘的第一个小格内,赏给我一粒麦子,在第二个小格内给两粒,在第三个小格内给四粒,照这样下去,每...原创 2020-04-10 19:56:54 · 835 阅读 · 0 评论 -
【程序员必修数学课】->基础思想篇->余数->哈希函数的本质
这篇文章是关于数学中一个常见的概念——余数。提起余数,想必大家都不陌生,我们生活中就有许多关于余数的例子。比如,今天是星期二,你想知道30天之后是星期几,就可以用 30 除以 7(一周七天),余 2,最后在今天的基础上加上两天,这样你就知道了,30天后是周四。再比如,我们做 Web 编程时,经常要用到分页的概念。如果你要展示 1123 条数据,每页 10 条,那么该怎么计算总共的页数呢?大部...原创 2020-04-10 16:00:08 · 440 阅读 · 0 评论 -
【程序员必修数学课】->基础思想篇->二进制->原码&反码&补码的数学论证
关于二进制你要知道的原创 2020-04-07 17:30:15 · 659 阅读 · 0 评论