« 十年之004:算法的前因后果十年之006:算法的基本形式 »

十年之005:生活中的算法

 

   这人不紧不慢,伸出手来说道:“神仙大人,我别的什么也不要,就只要您老刚才点石成金的那根手指头……。”——来自“点石成金”的寓言故事。

    点石成金的故事,很多人的理解是贪与不贪。如果能换一个角度思考,可以看出人们的观点,对于金子本身来说,更重要的是点石成金的方法。而对于问题解决的方法来说,我们还应当进一步关注产生方法的方法,也就是算法。这是在中、小学教育的信息科技课程中强调生活算法的理由之一。

    所谓算法,在不同的范畴有着不同的定义。数学是指计算、运算的方法,计算机科学中的主要是指计算机程序的方法与步骤的一般性法则。而面对基础教育的大多数学生来说,信息技术课不仅是计算机课,不再是二十年前单纯学习计算机语言、学习编程的任务。课程是一种广泛意义上的通识教育,因此不能仅仅停留在计算机技术的层级上。所以,在课程中强调“生活算法”的意义是,既强调生活中问题的广泛性,也要说明这里的“算法”不仅仅是程序设计层面。应当面对生活中的问题解决以及问题解决的一般性规则。

    在生活中,我们会随时遇到各种各样的问题,面对各种各样的事情。从小的事情到大的事情,从简单的事情到复杂的事情,从容易解决的事情到感觉困难的事情……,实在是太多了。人们面对的每一件事情、每一个问题,总会有解决的办法。许多所谓无法解决的问题往往是因为这类问题暂时还没有找到“解”,而不是永远无法解决。

    面对生活中的大大小小的问题,每人都有自己喜欢的解决方法,寻求着属于自己的“解”。每人内心深处都会有着寻找“解”的方法——这就是算法,生活中的算法。

    面对问题想到了解决方法就会有“生活算法”。只是有些人非常清楚自己是如何找到解决办法的,而有些人还没有意识到这点。

    其实生活中存在着丰富的“算法”。如同与解数学题中的一题多解与多题一解反映着数学算法一样,生活中的一件事情也会有多种解决方法,多件事情也可能有共同的解决方法。这也是在问题—方法中体现了生活算法的丰富性。有了生活算法就有了解决一类问题的钥匙,利用不同的算法可以从中寻找到更好一些的方法。

    每个人都在生活中练历着自己。一点点地积累着经验,一点点成熟。人总是利用自己的经验形成解决同一类问题的方法—这也是一个算法成熟的过程。从方法的积淀到逐步形成算法,再从不同的算法中找到最恰当的解决方法,用最合适的方法解决问题……。这个过程每个人、每天、每时都在经历着。

    每个人的生活都是独特的。每个人的生活过程、遇到的问题、事情之间会有相似之处,也会存在着更多的不同。相似的问题在不同的环境中,解决的方法会大相径庭。这使得我们在每次遇到“老”问题时,也不应完全照搬上一次的解决方法。需要我们坐下来重新思考,重新认识、分析问题。在仔细的思考中寻找最恰当的解决方法。我们不能仅凭经验来办事,因为相同的计算方法在不同的环境中产生出了不同的解决方法——我们经常把这个叫做“随机应变”。有时,不同的算法也可能会因为环境的不同、视角的不同形成相同的解决方法——我们经常把这个称之为“英雄所见略同”。这也是算法的一种体现。

    算法存在着,并且影响着人们。可惜的是,很多人虽然在不时用着算法,但并不知道算法在帮助着自己的生活。

    生活总是平凡的,许多大事都是由一件件小事组成。认真做好自己身边的每一件小事,会使我们拥有一种更成功的生活。也许我们的头脑不足以记下生活中的每一件小事以及每一件小事的解决方法,但是我们因为自己有了找到方法的 “算法”所以面对曾经的小事会踌躇满专、信心十足。因为有了算法,往往可以解决同一类别的许多事情。有了算法就能够使自己形成一套或者几套解决问题的方法,能够使我们轻松面对许多小事。这将成功生活的重要保证之一。

    生活也是复杂的,许多看似简单的事情其实并不简单。这些所谓的“简单”很有可能需要要用非常复杂的方法来解决。在解决这类事情时会常常发现,找到其中的规律会使自己更好地面对问题。

    请你设想这样一种常见的状况——“车坏了”。在简单主义者的思考中,问题是非常容易解决:“车子坏了”?!——那送去修不就行了吗?而生活中却经常不是这样简单。

    如果你是一位家长,在某天早上,当你带着需要上学的女儿钻进了自己的汽车,却发现车怎么也无法启动了。你会怎么办?

图:车子坏了,需要考虑的问题
    你需要在很短时间内思考很多事情:如何修车?女儿如何上学?自己如何上班?晚上如何取车?如何接女儿放学?如何回家?……。这种看似简单的事情在生活中往往很复杂。
    生活也是简单的。所谓的复杂往往是由简单构成的。大的、复杂的事情是由小的、简单的事情组合而成。从简单到复杂,象俄罗斯木偶一样,一层层套起来。而我们明确了事情的每一个基本组成环节,就可以找到了问题的关键,可以分析、得出问题的解决步骤。解决复杂问题的基本步骤其实并不复杂,而这些就是算法的基石。
    算法能够帮助我们从复杂中找到简单,从简单中发现复杂。明确我们生活的算法,可以使我们更容易发现事情的关键点、找到更适合的解决步骤,选择更合适的方法……。通过对方法与过程的研究,我们完全可以在不同算法的对比中来体会生活中的乐趣。
有些人意识到方法与算法在起着作用,而有些人对此毫无察觉。无论心中的算法是隐藏在思想最深处,还是能够明确地表达出来,它们都确实在发挥着作用,最终使我们得到了方法。
     看样子,生活中的人们需要一点儿明确出来的算法。但如何把“生活算法”有什么一般性?如何把它明确出来呢?
  • 相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们

日历

最新评论

最近发表

Powered By Z-Blog 1.7 Laputa Build 70216

Copyright 2003-2007 芸心芹意 bean.being.org.cn Some Rights Reserved.