- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 递归——自己调用自己
第 3 章 递归——自己调用自己
递归(Recursion ),又译为递回,在数学与计算机科学中,是指在函数的定义中又
调用函数自身的方法。递归是一种奇妙的思考问题的方法,通过递归的这种思路,可简
化问题的定义。
3.1 从前有座山,山里有座庙
递归一词常用于描述以自相似方法重复事物的过程。例如,当两面镜子相互之间近
似平行时,镜中嵌套的图像是以无限递归的形式出现的。
3.1.1 老和尚讲的故事
将时光往前推,在中国还流传着这样一个有趣的故事:
从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么
呢?“从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什
么呢?‘从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是
什么呢?……’”
怎么样?这个故事就是不断重复着老和尚讲的故事,有趣?还是无聊?
不管怎样,这个故事可以不断地重复,一直讲下去。
这就是生活中一个用递归形成的故事。
3.1.2 德罗斯特效应
3-1
再来看一张图,如图 所示为一张网页的截图,在网页图中又包括相同的一份较
小的截图,在小图中又包含一份更小的截图,……,这样就形成了一幅递归形式的图形。
3-1 Droste effect
图 所示的图形称为德罗斯特效应( ),是递归的一种视觉形式,是
指一张图片的某个部分与整张图片相同,如此产生无限循环。这种照片是通过名为
Mathmap 的数学软件制作出来,使用 PhotoShop 的 Droste Effect 滤镜也可制作出这种
效果。
程序员的数学思维修炼(趣味解读)
图3-1
3.1.3 什么是递归
那么,什么是递归呢?
在数学和计算机科学中,递归指由一种(或多种)简单的基本情况定义的一类对象
或方法,并规定其他所有情况都能被还原为其基本情况。
3-2
例如,我们人类的发展繁衍中,人之间的辈份就是一种递归(如图 所示),在这
个递归中首先定义一个基本情况,接着递归定义,具体情况如下:
图3-2
·62 ·
第3 章 递归——自己调用自己
A 的父母是A 的祖先(这是基本情况)。
A 祖先的双亲同样是A 的祖先(递归步骤)。
对于递归,一种便于理解的心理模型,认为递归对对象的定义是按照“先前定义的”
同类对象来定义的。
例如:要求能移动100 个箱子,该怎么移动?
1
首先移动 个箱子,并记下它移动到的位置,然后再去解决较小的问题(由于已移
1 99 99
动了 个箱子,剩下 个箱子),这时的问题就简化为“怎样才能移动 个箱子?”,……
1 3-3
不断重复,到最后,问题将简化为“怎样移动 个箱子”,如图 所示。
图3-3
1
类
文档评论(0)