APP下载

何为“生活算法”?

2014-04-28武健

中国信息技术教育 2014年7期
关键词:买菜书店算法

武健

缘起

“算法”一词是在数学界提出的。

“算法”的中文最早出现在中国汉代的数学名著《周髀算经》中。《周髀算经》卷上有:“数之法出于圆方。圆出于方,方出于矩。矩出于九九八十一”。意思是:算数的方法都出于对圆、对方的计算,其中圆出于方(圆形面积=外接正方形*圆周率/4),方出于矩(正方形源自两边相等的矩),矩的计算出于九九八十一(长乘宽面积的计算依自九九乘法表)。

“算法”的英文是Algorithm,来自于9世纪波斯数学家穆罕穆德·宾·穆沙·阿尔·花剌子密(Muhammad bin Musa al-Khuwarazmi,又译花剌子模)一本著作的名称。原来为“algorism”,意思是阿拉伯数字的运算法则,在18世纪逐渐演变成为“algorithm”。算法随着阿拉伯数字一起传播到了世界范围。

在数学中,也会经常提到“算法”。

算法一般是指计算的方法、运算的法则。例如,要计算18+19得多少?是有许多种算法的。可以先算8+9,然后再加上20;也可以先算19+8,然后再加上10;还可以先用18+2,然后再加上17……学习数学的过程中,掌握的算法越多,数学思维就会越清晰。

在计算机学科中也经常会提到“算法”一词。

诗人拜伦的女儿Ada Byron(艾达·拜伦)是世界上公认的第一位程序员。在1842年为巴贝奇分析机编写求解解伯努利方程的程序时就提出了关于算法的问题。

计算机中的算法是指利用计算机在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗地说,就是计算机解题的过程,是解决问题的方法与步骤。在这个过程里,无论是形成解题思路还是编写程序,都是在实施算法。所以前者是推理实现的算法,后者是操作实现的算法。

与数学中的存在性证明还是有些不同的。数学中的存在性证明是一种理性的承认。希尔伯特曾经在给学生讲到存在性证明时,举过一个例子:“这个班里一定存在一个学生,他的头发数最少,可是我们不可能知道他是谁”。而计算机则需要落实到每一件工作、每一个步骤,如计算一个函数值,求解一个方程,证明一个结果等。需要有一个清晰的思路,一步一步地去完成,这就是算法的思想,程序化的思想。

所谓算法思想,就是指按照一定的步骤,一步一步去解决某个问题的程序化思想。正是其步骤性、程序性使得能够在计算机上得以完成。计算机解决任何问题,必须将解决问题的过程分解为若干明确的步骤(即算法),并用计算机能够接受的“语言”准确地描述出来。算法是计算机科学的重要基础,没有算法也就没有计算机。

生活算法

在计算机普及的时代,程序设计人员日益增多。程序化越来越为人们普遍接受,认可算法在社会中变得越来越明确、重要。对照着生活,人们发现以前虽然没有直接用“算法”一词,但一直在使用着算法的思想:即使自己在面对一些不足道的日常小事时,也会想出很多种解决方法,提出不同的解决过程,有着不同的最终结果。在这些解决生活的方法与步骤中存在着背后的规律与一般性的行动规则。

例:生活中问题——老李家住东直门,周六要去王府井书店买书。刚要出门,爱人又要他到附近的菜店买点菜回家,好做中午饭。听话的老李会怎么办呢?

生活中的事情,往往会有很多不同的解决方法。老李可以:

方案一:从家出来,直奔附近的菜店买菜,然后提着菜直奔书店买书。之后拿着书与菜回家。

评述:怎么会这样?提着装满菜的菜篮子进书店,这种人真是少见呀!

方案二:先到书店买书,然后提着书到家附近的菜店买了菜再回家。

评述:可能是一种省力的方案,书毕竟便于携带一些。不过,都是这样吗?会不会带着沉重的百科全书,然后与菜店的小贩们讨价还价?

方案三:先去附近的菜店买菜。送回家后再去书店买书。

评价与分析:这是与家人协作的一种方法。家里的人在做饭,老李先去买菜。先把菜送回家,再到书店自由自在地挑书。等回家了,饭也做好了。不过,这种方法可是要多走好些路,多花不少时间的呀。

方案四:……

生活中会有许多的类似“买书与买菜”的问题。面对问题时会有很多种解决方法,同时个人会根据环境条件、个人偏好等原则与标准选择方法、方案;在不同环境、方法下会有着不同的结果……

如果按时间维度,把生活中解决问题的方法与步骤看成一个个“程序”,那么针对解决生活问题的方法而形成的行动规则与套路,就可以看成“算法”。在方法与步骤的基础上,面向生活中问题解决的“算法”,就是生活算法。

特点

用生活算法的思路来反思我们的生活,可以发现:我们可能会随时遇到类似的生活问题:早晨上班前发现车子坏了,自己要怎么办?如何办理自己家里的电话移机?把手洗干净的步骤是什么?一组同学如何配合把教室打扫干净……

面对这样或者那样的问题都会有许多种办法,有人选择这样的方法,也有人选择那样的方法;同一个问题会有着多种解决方法,即使不恰当的方法也是方法;同一种方法甚至会产生不同的结果,即使不能解决的问题也有最终结果……在生活中,每个人随时都需要决策,每个人都在不同程度上关注方法与步骤。如果还能够更深入,还会继续问下去:它们是如何产生的?是否存在着一般性的行动规则?我们是根据什么因素在各种不同方法与过程中择优?……这些都是生活算法特别关注的范畴。

明确的算法可能对解决当前具体事物没有直接作用。但在更广的范围内会有明显作用,尤其是在应用工具、技术解决相对复杂的问题时会更加典型和突出。

因为,生活算法需要预先设计出解决问题的方案;需要对各种不同方案进行筛选;需要根据现有的条件对解决的方案进行分析与优化……也许生活中不存在最优算法,但在诸多方案中总会存在一种或多种更好的。这就是在进行着生活算法设计与优化的过程。在“买菜与买书”中,老李有了目标就可以提出不同的解决方法与步骤,可以根据省时或者省力等不同的标准,在不同的解决方案中选择自己最适合的一种。这是在规划算法。

对人的认知来说,生活中的“简单”问题往往很“复杂”。许多简单的事情,在不同的环境中会有不同的要求,往往会有更多的限制条件。条件不同,即使相同的事情也会有着不同的解决方法。越接近生活实际,限制的条件会越多,就会越难抉择。这往往需要我们列举出各种不同的解决方法,根据具体情况,通过列举、对比、分析最终找出最恰当,并在具体实施中不断修正来达到最佳的效果。这就是在应用中实施生活算法。

面对着生活中的问题,每个人都会首先从自己的视角来思考,得到不同的、可能的解决方案。在具体实施过程中,当遇到简便、合适的方法时就使用;遇到繁杂、不合适的方法就寻求变化,不固执地使用某一种方法。这也是一种选择方法的准则:遇到繁杂而不方便的方法就需要寻求变化,找到一种简便、恰当的方法。前者是推理实现的生活算法,后者是操作实现的生活算法。

如果能够更早地把这些方法教给孩子们,帮助他们能够更独立地面对生活问题,帮助他们去寻找这些方法与步骤背后规律与规则,帮助他们在使用信息技术中善于归纳、推理、选择……对于信息技术课程而言是相当重要的。

参考文献:

袁思情,李俊对.“圆出于方”解释的探析[J].小学教学·数学版,2010(06):46.endprint

猜你喜欢

买菜书店算法
小兔买菜
Travellng thg World Full—time for Rree
独立书店联合荐书榜
独立书店联合荐书榜(总第八期)
学习算法的“三种境界”
算法框图的补全
算法初步知识盘点
最美书店
买菜
买菜