飞沙走石解《编程之美》

飞沙走石解《编程之美》

 

   

这几天稍微清闲一点,就翻看了一下《编程之美》,从序言看起。我看书其实很喜欢看序言和后记。一本好书的序言和后记中觉得凝结着作者的心血。从序言和后记的内容和质量也能看出一本书到底是纯粹拼凑的商业作品,还是一本值得细读的佳作。《编程之美》显然属于后者。从调侃一些找工作和面试的基本情况,到介绍微软招人的方式,都写得很真实。不过整本书中最具价值的还是那些面试题目和对题目的分析。

 跟邻座的同学约定,随便从书中选一个题目,看谁的解法最好。抽中的题目是294页的4.6,一个从桶中取球的题目。如果能充分的理解题目,其实很容易。但是题目中在提问时却设了一个巧妙的陷阱,一下子就将同学套进去了。来看看这个题目的问题:问:最后桶里面只剩下一个黑球的概率是多少?。一看到问题中的概率二字,同学在草稿纸上写下的就是一堆诸如贝叶斯公式之类的东西。一阵天昏地暗的运算之后,告诉我:算不出具体的概率,但应该有很大的概率是黑球。我要他将一步步的推断过程讲给我听。一堆公式,逐步地展开,最后的结果就是他自己也不知道自己在算什么了,完全迷失了……

这个问题中的概率二字对于学过概率论的理工科学生来说太有诱骗性了。其实这个题目与概率论完全无关,一道纯粹的离散数学题,或者可以说是适合给没学过概率论的中小学生做的智力题。如果将问题改成最后桶里面剩下的一个球是黑球还是白球?,或许这道题目的难度就能减去大半。不知道邹欣老师在写这个题目的时候是否做了这方面的考量。

我又给同学谈起我的想法,一阵飞沙走石,双方都算是理解了对方的想法。然后再翻开书看看微软牛人们的分析和解答,顺便研究一下扩展问题。两人恍然大悟之时再去看电脑上的时间,已经过去将近两个小时了。

很久没有这种感觉了,两个人能为了一个问题一起埋头苦想。如果没有《编程之美》这种牛书,估计也没人有兴趣跟我一起研究问题,这种问题也不会引起我的兴趣。买一本书,可以跟好友一起研读,很惬意的事情。还约定一起实现书中的算法——或许我又能回到中学那种以解题为乐趣的年代。

中南大学陈钢

posted @ 2009-08-05 09:51  博文视点  阅读(322)  评论(0编辑  收藏  举报