专栏名称: 好玩的数学
好玩的数学以数学学习为主题,以传播数学文化为己任,以激发学习者学习数学的兴趣为目标,分享有用的数学知识、有趣的数学故事、传奇的数学人物等,为你展现一个有趣、好玩、丰富多彩的数学世界。每周还有三道题等着你来挑战!
目录
相关文章推荐
超级数学建模  ·  限时领 | ... ·  2 天前  
超级数学建模  ·  如果只能培养孩子一项能力,你会选什么? ·  3 天前  
超级数学建模  ·  博士offer一夜变废纸,导师被逼抱头痛哭, ... ·  昨天  
51好读  ›  专栏  ›  好玩的数学

不只是适合程序员的数学思维书 | 好书

好玩的数学  · 公众号  · 数学  · 2017-05-29 07:29

正文

每次读结城浩的书都有一种很轻松的感觉,之前给大家推荐的《数学女孩》是这样的,今在要给大家推荐的这本《程序员的数学》也是这样,这 是结城浩的另一代表作。


不只适合程序员的数学思维书


本书面向程序员介绍编程中常用的数学知识,借以培养初级程序员的数学思维。读者无需精通编程,也无需精通数学,只需要具备四则运算和乘方等基础知识,就可以阅读本书。 所以这是一本面向 初级程序员 ,重在培养数学思维的书,而不是教你如何编程的书。 当然如果你懂点编程的知识将更加有助于理解本书内容。


既然是重在培养数学思维的书,那么对于不是程序员的朋友来说,读起来也一样会有收获。


如果你是学生家长,想从小培养孩子的编程能力,这是一本难得的书,初中及初中以上的学生可阅读。


编程中的“数学思维”


通过本书,你将学习到编程中常用的“数学思维”,“数学思维”说起来太抽象,我们来举几个具体的例子:


1)条件分支和逻辑

在编程时,我们按照条件将处理方法分为多个“分支”。C 语言和Java 语言中使用的是if 语句。处理方法为: 当满足条件时执行这条语句,不满足条件时执行另一语句。这时,我们就使用了数学领域的“逻辑”来控制程序。因此,编程时必须熟练掌握“ 与”“、或”“、非”、“蕴涵”等逻辑构成元素。


2)循环和数学归纳法

我们在处理大量的信息时,使用程序进行“循环”操作。比如使用for 语句可以循环处理大量数据。循环中使用的就是“数学归纳法”。


3)分类和计数方法

在将许多条件和数据“分类”时,程序员必须注意不能有遗漏。这时加法法则、乘法法则、排列、组合等“计数方法”将助你一臂之力。这是程序员应该熟记于心的数学工具。


通过本书,还可以学到递归、指数、对数、余数等重要的基础思维方式。


编程之外的“数学思维”


我很赞赏结城浩的书,因为他总能把数学思维的过程用通俗易懂的方式和盘托出,读起来是一种享受。除了编程中的“数学思维”,我们还能向结城浩学习到哪些“数学思维”呢?


1)善用自己的语言总结数学

我们小学就学过余数,但是如果别人问你余数是什么?余数有什么用?你能很快回答出来吗?


也许你会搬出课本上的定义:在整数的除法中,只有能整除与不能整除两种情况。当不能整除时,就产生余数。


再来看结城浩是如何用自己的语言概括余数的,他说:“余数就是作除法运算时剩下的数。”并提出:“余数就是分组。”道出了余数的作用。



再来看,什么是排列组合?排列组合是解决计数问题的方法。那什么是递归呢?递归就是自己定义自己。数学归纳法有什么作用?它是用来征服无穷数列的工具。而逻辑,他把它总结为真与假的二元世界。等等。



如果我们在学习数学的过程也能试着用这样简短的语言去概括、总结你所过的数学知识和方法,那么就不会有学了之后不知道数学有什么用的困惑了。



2)善用图表展现数学思维的过程

在书中我们经常能够看到类似于下面的有意思的图表,它可以向读者很好的展现数学思维的过程。


在余数这一节的结尾处,作者用一个想象的“七角时钟”和“六角时钟”来直观的表示“周期为7”和“周期为6”的规律。



有了这个图,可以很直观地看到,“100除以7的余数为2”表示这个时钟前进100个刻度后指针指向“2”这个顶点。而100除以7的商为14,表示时针转了14圈。


在数学学习的过程中,如果我们能善用图表,将有助于我们更好地理解数学。








请到「今天看啥」查看全文