分享

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

 昵称16619343 2017-05-29

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

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

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

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

编程中的“数学思维”

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

1)条件分支和逻辑

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

2)循环和数学归纳法

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

3)分类和计数方法

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

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

编程之外的“数学思维”

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

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

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

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

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

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

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

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

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

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

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

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

3)从简单到复杂的数学思维

以“汉诺塔”游戏为例。数学家爱德华·卢卡斯(edouard Lucas)于1883年发明了一个叫“汉诺塔”的游戏:有三根细柱(A、B、C),A柱上套着6个圆盘,这个圆盘大小各异,按从大到小的顺序自下而上摆放。现在要把套在A柱上的6个圆盘全部移到B柱上,并且在移动圆盘时须遵守下述规则。

  • 一次只能移动柱子最上端的一个圆盘。

  • 小圆盘上不能放大圆盘。

将1个圆盘从一根柱子移到另一根柱子,算移动“1次”。那么,将6个圆盘全部从A移到最少需要移动几次?

解决这个问题的思维就是从简单的问题着手——先找出“3层小汉诺塔”的解法,再找出解决“6层汉诺塔”问题的方法,最后再过度到“n层汉诺塔”问题的解法。

这就是一种从简单到复杂的数学思维方法。当然书中你还将学到很多其他的思维方法,这里仅举几例,绝对是挂一漏万。

好玩的数学题

本书还有一个亮点是,书中为我们展示了许多有趣的数学问题的解法。比如上面说的汉诺塔问题,还有斐波那契的兔子繁殖问题、黑白棋通信问题、寻找恋人问题、铺设草席问题、哥尼斯堡七桥问题(一笔画问题)、高斯求和问题等。如果你对编程不感兴趣,把它当作数学问题集来看也是不错的。

↓↓↓更多详情可点击阅读原文查看。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多