瑞问:“编程好玩吗?”
对于很多人来说,与学习数学相比,学习编程有意思多了。编程最棒的体验是,程序写完了交给计算机,计算机立刻将结果显示给你。浙江丽水的六年级学生刘恒熙在获得华罗庚杯全国金奖后,专心挑战信息学奥赛。我问他:“为什么放弃数学?”他回答:“数学题目做完后,没办法知道自己做对了,需要痛苦地等待着老师批改,通常还需要等待很久,编程就不一样了,一道题做完后,运行一下,立刻就知道对或错。如果错了,可以马上修改,再次运行,效率高出很多很多,关键是,这个过程不需要老师的参与,完全可以按照自己的进度挑战题目,这非常过瘾,也能带来很大的成就感。”
瑞说:“我和刘恒熙一起学过编程,他很厉害,我对他解八皇后问题印象还很深刻。”
有一天,我给瑞讲解八皇后问题:“在8行8列的国际象棋棋盘上,摆上8个皇后,要求每个皇后都不能被其他皇后吃掉。要知道,国际象棋的皇后能够吃同一行、同一列或同一斜线上的棋子。”
瑞听完这个题目的描述,问我:“为什么非要摆上8个皇后,少摆点不行吗?”我一下子蒙了,等我缓过神,我回答:“当时是谁出了这么无聊的题目,我不知道,但是,有很多更无聊的人试图解出这道题。对于八皇后问题,如果用穷举法解,就需要尝试16777216种情况,有人从中找到了76种解法,这个人就是伟大的数学家高斯。”
瑞说:“啥?摆上8个皇后,让它们和平相处,就成数学家了?”
不服气的瑞开始动手画8行8列的棋盘,尝试了整整一下午,表示不可能做出来。我问瑞:“是所有的结果都试过了,发现没戏?还是尝试的过程太烦了,中途放弃?”瑞说:“中途放弃。”
我们讨论了瑞尝试的思路,用C语言编写程序,计算机用不到1秒的时间算出了92个答案。于是,瑞觉得他也有成为伟大数学家的潜质,因为他会用计算机编写程序。