热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

计算机科学中的数学pdf_不懂数学的人,能在计算机领域走多远?

计算机专业常听到这样一句调侃:一流程序员靠数学二流程序员靠算法三流程序员靠逻辑四流程序员靠SDK五流程序员靠Google和StackOverFlow计算机专业如何学好
fb5c777510f8fd95142f956dfed1bd4a.png

计算机专业常听到这样一句调侃:

一流程序员靠数学
二流程序员靠算法
三流程序员靠逻辑
四流程序员靠SDK
五流程序员靠 Google 和 StackOverFlow

计算机专业如何学好数学?这个问题一直备受计算领域小伙伴们关注。打开知乎,你会看到相关问题的热度,一直居高不下:

287fd400d405f683993d0e0367685a8f.png

所以,苦于学习数学的计算机专业的朋友们,你并不孤单。

恰好,人邮君看到一位计算机前辈的现身说法:

作为一名曾经计算机专业的学生,我也曾困惑并排斥学数学这件事。大学时候,某个教授告诉我们,学好数学才能真正学好计算机。我一直质疑这门难到让人怀疑人生的学科真的那么重要么?数学和计算机能有多大的关系呢?在质疑中,我果断的抛弃了数学,潜心学算法和程序设计。在后来的工作中,甚至遇到lab、课设,得过且过,抄一抄应付了事。
然而进入了工作岗位多年,进入了更高的level之后,我才知道一流程序员靠数学的理论 ,
并不只是程序员互相调侃调侃那么简单。
在实际的工作中当计算机专业的小伙伴们面对一个又一个的计算机问题时,就会不断后悔自己当初没有好好学数学,虽然的确能用算法的知识解决很多的问题,但是因为数学工具的基础薄弱,做出来的算法的实用性都很差。经过不断反思总结,就会发觉无论是数据结构与算法,还是程序设计,其底层原理和思路大都源自于数学。

很多小伙伴在工作中发觉了自己的弱势又开始回过头来恶补数学,却又遇到和当初一样的问题——各种课程听得昏昏欲睡,教科书也非常死板,看得头皮发冷,更别提怎么帮助大家解决实际的工程问题。

很多时候数学知识晦涩难懂,并不是因为学生不努力,而是书本没讲好,它没有从源头讲清楚数学知识的本质。只有“知其然,并知其所以然”才能加深对知识的理解,在升级打怪的路上畅通无阻。

说到这里,就不得不提一本备受读者喜爱的书——吴军博士的《数学之美》,它帮助很多人,改变了对数学的刻板印象,打开了学习数学的大门。

fa6b9ef1842bab51647a560716ffc23e.png
作者:吴军

正如作者吴军博士所说,技术分为道和术,教会大家具体方法的是“术”,教会大家做事原理和原则的是“道”。《数学之美》这本书更多地是为大家讲解技术的道,而非术。这能引发读者的思考,让大家从实际的工程应用中领悟数学之美!

举几个书中的例子,让大家一睹为快。

  • 数学的简单之美:从“0与1”到搜索引擎

《数学之美》的第八章从最简单的布尔代数谈起。

布尔代数虽然非常简单,却是计算机科学的基础,它不仅把逻辑和数学合二为一,而且给了我们一个全新的视角看待世界,开创了数字化时代。

世界上不可能有比二进制更简单的计数方法了,它只有两个数字:0 和 1。

二进制除了是一种计数方式外,它还可以表示逻辑的“是”与“非”。

布尔运算是针对二进制,尤其是二进制第二个特性的运算,它很简单,运算的元素只有两个:1 (TRUE, 真) 和 0(FALSE,假)。

基本的运算只有“与”(AND)、“或” (OR) 和“非”(NOT) 三种。
(后来发现,其实这三种运算都可以转换成“与”“非”AND-NOT一种运算)

运算规则是这样的:(如果觉得简单可以跳过看应用)

如果 AND 运算的两个元素有一个是 0,则运算结果总是 0。如果两个元素都是 1,运算结果是 1。
如果 OR 运算的两个元素有一个是 1,则运算结果总是 1。如果两个元素都是 0,运算结果是 0。
NOT 运算把 1 变成0,把 0 变成 1。

这么简单的布尔运算是如何应用到搜索引擎中的呢?

最简单索引的结构,是用一个很长的二进制数表示一个关键字是否出现在每篇文献中。有多少篇文献,就有多少位数,每一位对应一篇文献,1 代表相应的文献有这个关键字,0 代表没有。

比如关键字“原子能”对应的二进制数是0100100001100001……。从前往后第2、第5、第9、第10、第16位上数字是1,表示第2、第5、第9、第10、第16篇文献包含关键字“原子能”。注意,这个二进制数非常之长。同样,我们假定“应用”对应的二进制数是 0010100110000001……。那么要找到同时包含“原子能”和“应用”的文献时,只要将这两个二进制数进行布尔运算 AND(“与”操作)。根据“与”的运算规则,我们知道运算结果是0000100000000001……,表示第5篇、第16篇文献满足要求。

在布尔代数提出80多年后,1938年香农在他的硕士论文中指出用布尔代数来实现开关电路,使得布尔代数成为数字电路的基础。最终,人类用一个个开关电路最终“搭出”电子计算机,打开数字化时代的大门。

  • 数学无处不在:余弦定理与新闻分类密不可分的关系

余弦定理与我们常见的新闻分类有什么关系?《数学之美》来告诉你其中的奥秘!

如果让编辑来对新闻分类,他一定会先读懂新闻,然后找出其主题,最后根据主题的不同对新闻进行分类。

然而计算机本质上只能做快速计算,为了让计算机能够“算”新闻,就要求我们先把文字的新闻变成一组可计算的数字,然后再设计一个算法来算出任意两篇新闻的相似性。

首先,对于一篇新闻中的所有实词,计算出它们的TF-IDF值。把这些值按照对应的实词在词汇表的位置依次排列,得到一个向量。用这个向量来代替这篇新闻,并成为新闻的特征向量。每一篇新闻都可以应对这样一个特征向量。

两篇新闻的主题是否接近,取决于它们的特征向量“长得像不像”。如果两个向量的方向基本一致,说明相应的新闻用词的比例基本一致。因此,就可以通过计算两个向量的夹角来判断主题的接近程度。

这时候我们的余弦定理登场,用来计算两个向量之间的夹角。当夹角的余弦值接近于1时,两条新闻相似,可以归为一类;当夹角的余弦为0,说明两篇新闻根本没有相同的主题词,它们毫不相关。

把人力从繁琐的工作中解放出来,我们需要学习数学!

  • 数学是粘合剂:数学思维与其他学科的融合
作为现代自然语言处理的奠基者,贾里尼克教授成功地将数学原理应用于自然语言处理领域中,将语音识别带出实验室,走向实际应用。

《数学之美》这本书用贾里尼克教授(世界著名语音识别和自然语言处理专家,也是作者吴军博士的导师)的例子,阐述了数学思维与学科融合的重要性。

在贾里尼克之前,科学家们把语音识别问题当作人工智能和模式匹配问题,而贾里尼克将语言识别问题定义为通信问题,将统计的方法应用于自然语言处理,提出统计语音识别的框架结构,并用两个隐马尔可夫模型(声学模型和语言模型)把语音识别概括得清清楚楚。

采用基于统计的方法,贾里尼克和他领导的 IBM 华生实验室(T.J.Watson)将当时的语音识别率从70%提升到90%,同时语音识别的规模从几百单词上升到几万单词,从根本上使得语音识别有实用的可能,奠定了今天自然语言处理的基础。

更多用数学解决工程问题的精彩实例,请见——《数学之美》

aee801154d0296161560ae241cf6eecc.png

《数学之美》这本书包含了吴军博士对科技信息领域发展变化的总结归纳,阐述了自己对数学和信息处理的专业学科的理解,把与搜索相关的众多领域中奇妙的数学应用娓娓道来。

通过数学和应用相结合的方式,吴军博士把数学背后的本质思维写得透彻、生动。有读者说,读了《数学之美》,才发现大学时学的数学知识,比如马尔可夫链、矩阵计算,甚至余弦函数原来都如此亲切,并且栩栩如生,才发现自然语言和信息处理这么有趣。

相比第二版,最新的第三版还与时俱进的增加了区块链数学基础,量子通信原理,以及人工智能的数学极限,这些最为热门的主题的介绍。

知乎视频​www.zhihu.com

和作者的初衷一样,人邮君希望这本书可以通过一些实例,帮助大家体会数学之道,领悟数学之美,以便在今后解决实际问题时能够举一反三。

========

赠人玫瑰,手留余香,不要忘记点赞、收藏、关注 @人民邮电出版社 哦~

一键三连,感恩有你~



推荐阅读
author-avatar
毕老爷666
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有