网易首页 > 网易号 > 正文 申请入驻

程序员学数学必知必会的「十大基础思想」

0
分享至

  一、二进制

  二进制(binary)在数学和数字电路中指以2为基数的记数系统,以2为基数代表系统是二进位制的。这一系统中,通常用两个不同的数字0和1来表示。

  二进制是计算机系统的基础,在数字电子电路中,逻辑门直接采用了二进制,因此现代的计算机和依赖计算机的设备里都用到二进制。每个数字称为一个比特(Bit,Binary digit 的缩写)。


  (二进制)

  
二、余数

  余数就是指整数除法中被除数未被除尽的部分,且余数的取值范围为 0 到除数之间(不包括除数自身)。取余数运算 a mod b = c(b不为0)表示整数a除以整数b所得余数为c。例如:32÷5= 6…2,更专业的符号也可以写作 32÷5=6 又 2/5,或者32 mod 5=2。

  可不要小看余数,无论是在日常生活中,还是计算机领域中,它都发挥着重要的作用。当然,计算机中的余数思想大多被运用在很多常见的算法和数据结构中,而且有可能你在不知情情况下就运用到它。


  (求余数)

  
三、布尔代数

  布尔代数是一个用于集合运算和逻辑运算的公式:〈B,∨,∧,¬ 〉。其中B为一个非空集合,∨,∧为定义在B上的两个二元运算,¬为定义在B上的一个一元运算。通过布尔代数进行集合运算可以获取到不同集合之间的交集、并集或补集,进行逻辑运算可以对不同集合进行与、或、非。

  可以说,布尔代数算是编程中控制逻辑的灵魂。因为真值可以在逻辑电路中表示为二进制数数或电平,这种相似性同样扩展到它们,所以布尔代数在电子工程和计算机科学中同在数理逻辑中一样有很多实践应用。在电子工程领域专门化了的布尔代数也叫做逻辑代数,在计算机科学领域专门化了布尔代数也叫做布尔逻辑


  (布尔代数)

  
四、迭代

  迭代是重复反馈过程的活动,其目的通常是为了接近并到达所需的目标或结果。每一次对过程的重复被称为一次“迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。

  数学中的迭代可以指函数迭代的过程,即反复地运用同一函数计算,前一次迭代得到的结果被用于作为下一次迭代的输入

  在计算机科学中,迭代是程序中对一组指令(或一定步骤)的重复。它既可以被用作通用的术语(与“重复”同义),也可以用来描述一种特定形式的具有可变状态的重复。

  将迭代法和计算机强大的处理能力相结合,我们能创造出很有价值的数据结构和算法。


  (一个五边形的迭代。将对角用直线段连起来得到一个五角星,后者中心围成了一个倒过来的小五边形。迭代地执行这一过程会产生一系列嵌套的五边形和五角星。)

  
五、递归

  递归(Recursion),在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。递归一词还较常用于描述以自相似方法重复事物的过程。例如,当两面镜子相互之间近似平行时,镜中嵌套的图像是以无限递归的形式出现的。也可以理解为自我复制的过程。

  程序调用自身的编程技巧称为递归。递归作为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。

  递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。


  (德罗斯特效应是递归的一种视觉形式。图中女性手持的物体中有一幅她本人手持同一物体的小图片,进而小图片中还有更小的一幅她手持同一物体的图片,依此类推。)

  
六、数学归纳法

  数学归纳法(Mathematical Induction、MI、ID)是一种数学证明方法,通常被用于证明某个给定命题在整个(或者局部)自然数范围内成立。除了自然数以外,广义上的数学归纳法也可以用于证明一般良基结构,例如:集合论中的树。这种广义的数学归纳法应用于数学逻辑和计算机科学领域,称作结构归纳法


  (多米诺骨牌效应:骨牌一个接一个倒下,就如同一个值到下一个值的过程)

  迭代和递归,以及与它们相关的数学归纳,是和基础编程关系非常紧密的。迭代法和递归都是通过不断反复的步骤,计算数值或进行操作的方法。迭代一般适合正向思维,而递归一般适合逆向思维。而递归回溯的时候,也体现了正向递推的思维。它们本身都是抽象的流程,可以由不同的编程实现。

  
七、排列和组合

  排列(permutation),一般地,从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列,叫做从n个元素中取出m个元素的一个排列。特别地,当m=n时,这个排列被称作全排列(all permutation)。

  组合(combination),是一个数学名词。一般地,从n个不同的元素中,任取m(m≤n)个元素为一组,叫作从n个不同元素中取出m个元素的一个组合。我们把有关求组合的个数的问题叫作组合问题。

  
八、动态规划

  动态规划(Dynamic Programming,DP),是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法,是求解决策过程最优化的过程。

  20世纪50年代初,美国数学家贝尔曼等人在研究多阶段决策过程的优化问题时,提出了著名的最优化原理,从而创立了动态规划。动态规划能减少不必要的排列和组合,最终大幅提升算法的性能。


  (算法中的动态规划问题)

  
九、树

  树是图论中最重要的概念之一,也是一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。

  它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树。


  (数据结构中的树存储结构)

  十、图

  在数学的分支图论中,图(Graph)用于表示物件与物件之间的关系,是图论的基本研究对象。一张图由一些小圆点(称为顶点或结点)和连接这些圆点的直线或曲线(称为边)组成。

  图是一种多对多的数据结构,比线性表和树更复杂,它由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。


  (一个有六个顶点,七个边的图)

  数学决定了一个人技术上发展的上限,它对程序员来说意义非凡!

  数学不仅仅是程序员的工具,更是从低端向高端进阶的黑魔法。那么,程序员如何学好数学给自己夯实好进阶的台阶呢?

  《程序员的数学基础课 从理论到Python实践》可以帮你搞定!


  作者:黄申

  
内容

  本书内容分为三大模块:“基础思想”篇梳理编程中常用的数学概念和思想;“概率统计”篇以概率统计中核心的贝叶斯公式为基点,向上讲解随机变量、概率分布等基础概念,向下讲解朴素贝叶斯,并分析其在生活和编程中的实际应用;“线性代数”篇从线性代数中的核心概念向量、矩阵、线性方程入手,逐步深入分析这些概念是如何与计算机融会贯通以解决实际问题的。

  亮点

  1.紧紧围绕程序员的需求。

  数学的课题非常广泛,但本书没有涉及数学领域的全部课题,而是从程序员的需求出发,精心挑选了编程所需的常用知识点,并实现学以致用。

  2.结合生动的案例和形象的比喻解读难点。

  降低技术理解的门槛,让程序员更容易理解数学背后的逻辑,并对实际生产问题进行数学建模,进而设计出更有效的算法,编写出更优雅的代码。

  3.注重编程实践。

  除了阐述理论知识,书中还提供了要通过大量实践才能积累的宝贵经验,让读者有机会亲自动手编写Python 代码,进而加深理解。

  4.提供源代码下载。

  本书从概念到应用再到本质,层层深入,不但注重培养读者的数学思维,而且努力使读者的编程技术实现进阶,非常适合希望从本质上提升编程质量的中级程序员阅读和学习。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐

陪在公主身边的不一定是王子,也可能是欧拉朋克猫

麻辣车事
2021-05-07 20:24:36

“做完就饶了你!”14岁少女被迫当众发生关系,网友:丧心病狂!

微梦白昼
2021-05-07 16:30:22

41岁影后被曝“专睡导演20年”,惨遭封杀后至今未婚,她做错了什么?

生活新青年
2021-05-07 22:21:13

号码布成了“遮羞布”,青岛马拉松,被众人调侃

体坛赛事风云录
2021-05-08 07:00:01

愤怒!曝仇恨事件,韩裔女与白人男友大闹Costco,身穿辱华上衣,爬上货架叫嚣:华人滚出美国!

华人生活网
2021-05-08 08:28:38

最绝望的死法:1000度高温53小时烘烤,39人在隧道里被“煮熟”

胖福的小木屋
2021-05-08 00:08:28

南京一面包店扔掉尺寸不合格面包被约谈 官方称非处罚,店家承诺将捐给环卫工

红星新闻
2021-05-07 21:40:37

男性的“精液”,被女性“使用”后,3大好处不请自来

八姐论八卦
2021-05-07 21:08:34

2nm芯片宣布成功,台积电和三星都没想到,这次来得这么突然

我们都是科技宅
2021-05-08 06:25:01

全裸成瘾?6名乌克兰性感模特游艇上裸体互拍,户外现场照片流出

兵少虎
2021-05-07 16:44:17

半天没了近千亿!为了印度放弃疫苗知识产权,到底因为啥。。。

大猫财经
2021-05-07 11:54:22

儿时遭哥哥性侵,她含恨计划杀光全家,从自己儿子下手"下毒"13次…

英国那些事儿
2021-05-08 00:22:40

默克尔拍板了!德国军舰确定访问上海,日澳:给我们一记响亮耳光

娱乐的名角色
2021-05-08 04:24:21

美媒惊呆了:原来这些“逃离中国”的华人,要的“自由”是这?!

环球时报评论
2021-05-07 18:27:05

卧槽!张碧晨这是被封杀了?!

yy电视快照
2021-05-08 00:43:06

背脊发凉!美国这个州将取消“持枪审批”,人人可公开携枪上街!

INSIGHT视界
2021-05-08 03:23:24

刘桦谈黄渤:以前他从北极永冻层带水给我喝 现在电话都没来一个

幽默表格的前沿思想
2021-05-08 01:15:32

阳台跳舞坠亡红衣女子遗书照片曝光?揭秘怪茅山法术还是榜一大哥

娱乐星闻精选
2021-05-08 02:03:43

李伯含被查,央企反腐不停歇

大众日报
2021-05-08 07:36:30

比厦门安静,比青岛便宜!江苏这座被遗忘的海滨老城,早该火了

一个人的旅行一个人的地老天荒
2021-05-08 00:58:47
2021-05-08 11:00:52
人民邮电出版社
人民邮电出版社
人民邮电出版社官方自媒体平台
193文章数 968关注度
往期回顾 全部

科技要闻

冯仑:换个角度看世界 满足好奇心

头条要闻

什么是紧急使用清单?纳入清单对中国疫苗意味着什么

头条要闻

什么是紧急使用清单?纳入清单对中国疫苗意味着什么

体育要闻

冯仑:换个角度看世界 满足好奇心

娱乐要闻

流鼻血 李菲儿穿抹胸裙秀“柯基臀”

财经要闻

汽车要闻

众筹成功 3秒破百的名爵纯电动超跑确定量产

态度原创

艺术
时尚
数码
亲子
游戏

艺术要闻

徐良高:从历史和文化的角度认识三星堆

在韩出道3年的流量女星,回国会更好吗?

数码要闻

曝苹果M2最快7月出货!明年将完全脱离英特尔芯片

亲子要闻

上海迪士尼一员工扮演维尼熊遭孩子暴打,家长态度强硬

老滚MOD改编《遗忘之城》延期至今夏发售