递归主方法
递归的主要方法是什么?一、递归算法 递归算法(英语:recursion algorithm)在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。递归式方法可以被用于解决很多的计算机科学问题,因此它是计算机科学中十分重要的一个概念。绝大多数编程语言支持函数的自调用,在这些语言中函数可以通过调用自身来进行递归。计算理论可以证明递归的作用可以完全取代循环,因此在很多函数编程语言(如Scheme)中习惯用递归来实现循环。二、递归程序在支持自调的编程语言中,递归可以通过简单的函数调用来完成,如计算阶乘的程序在数学上可以定义为:这一程序在Scheme语言中可以写作:1(define (factorial n) (if (= n 0) 1 (* n (factorial (- n 1)))))不动点组合子即使一个编程语言不支持自调用,如果在这语言中函数是第一类对象(即可以在运行期创建并作为变量处理),递归可以通过不动点组合子(英语:Fixed-point combinator)来产生。以下Scheme程序没有用到自调用,但是利用了一个叫做Z 算子(英语:Z combinator)的不动点组合子,因此同样能达到递归的目的。1(define Z (lambda (f) ((lambda (recur) (f (lambda arg (apply (recur recur) arg)))) (lambda (recur) (f (lambda arg (apply (recur recur) arg)))))))(define fact (Z (lambda (f) (lambda (n) (if (<= n 0) 1 (* n (f (- n 1))))))))这一程序思路是,既然在这里函数不能调用其自身,我们可以用 Z 组合子应用(application)这个函数后得到的函数再应用需计算的参数。尾部递归尾部递归是指递归函数在调用自身后直接传回其值,而不对其再加运算。尾部递归与循环是等价的,而且在一些语言(如Scheme中)可以被优化为循环指令。 因此,在这些语言中尾部递归不会占用调用堆栈空间。以下Scheme程序同样计算一个数字的阶乘,但是使用尾部递归: 1(define (factorial n) (define (iter product counter) (if (> counter n) product (iter (* counter product) (+ counter 1)))) (iter 1 1))三、能够解决的问题数据的定义是按递归定义的。如Fibonacci函数。问题解法按递归算法实现。如Hanoi问题。数据的结构形式是按递归定义的。如二叉树、广义表等。 四、递归数据数据类型可以通过递归来进行定义,比如一个简单的递归定义为自然数的定义:“一个自然数或等于0,或等于另一个自然数加上1”。Haskell中可以定义链表为:1data ListOfStrings = EmptyList | Cons String ListOfStrings这一定义相当于宣告“一个链表或是空串列,或是一个链表之前加上一个字符串”。可以看出所有链表都可以通过这一递归定义来达到。
文章标签:
来自:递归是什么意思
本文链接:https://www.u1e.cn/baike/a/3c5d8c286b3bb3805f1d613e [复制]
猜你喜欢
我想要的未来,就是每天早上起床都能看见你和阳光都在。
生活辛苦,能找到一点阳光就快乐就好了;身体烦累,但是随时让自己心情舒畅,这是一个极好的能力,身累不致心累,生活还就是美好的。
有梦想的人睡不着,没梦想的人睡不醒。
Just because I don't want to be savage, it doesn't mean I have no temper.
最终你相信什么就能成为什么。因为世界上最可怕的二个词,一个叫执着,一个叫认真,认真的人改变自己,执着的人改变命运。只要在路上,就没有到不了的地方。
Teacher, engineer of human soul, who won't praise you!
心香三炷达苍冥,祈愿尘寰六合清。更愿佛光常注照,诸方好运享安宁!给您拜年了,祈愿您新年胜因善缘,吉祥安康!
寂寂闻猿愁,行行见云收。——李白《寻高凤石门山中元丹丘》
家声中垒也称贤,喜气临门敞绮筵,双璧联辉夸美眷,六葭应节缔良缘;女如五彩云犹丽,郎却斯文德自妍,恐负嘉招先作贺,诗题汤饼约明年。
不图虚名,不慕奢华。
不管发生什么,你都不要放弃,肯定会有意想不到的风景。也许不是你本来想走的路,可是另一条路有另一条路的风景,不要念念不忘原来的路,在这里你会遇到难忘的更好的风景。
在遥远的城市,陌生的地方,有他未曾见过的山和海。
俗话说:一百种人有一百种命运,有的人可以一条路一直走到底,有的人却注定要曲曲折折,不过谁也不需要羡慕谁。最重要的是:我们迟早会遇上。
人总要找点事情做,让自己忙起来,忙起来才知道生活不易,才明白平时的忧伤都是矫情。
等一阵风,等一阵雨,等一个唯一的你。
你们给我挺住,都别吃,都那么肥了怎么还有脸吃。
如果不醒来,那么现实和梦境又有何分别。
天塌下来你顶着,我垫着!
最美的不是下雨天,是陪你一起躲过的屋檐。
南音少女
歇后语大全
竹筛子兜水是什么意思?
猪八戒败阵是什么意思?
纸糊的背墙是什么意思?
云缝里的日头是什么意思?
玉皇大帝吃稀饭是什么意思?
一个方凳坐两人是什么意思?
夜莺学乌鸦叫是什么意思?
养蛇咬自己是什么意思?
演戏瞪眼睛是什么意思?
眼镜蛇摆手是什么意思?
新袄打补丁是什么意思?
卸磨杀驴是什么意思?
瞎子打婆娘是什么意思?
铁爪捉木鸡是什么意思?
铁勺子烙饼是什么意思?
烫死的鸭子是什么意思?
唐朝的擀面杖是什么意思?
太阳上面点火是什么意思?
蛇吞扁担是什么意思?
三个钱买个牛肚子是什么意思?
三百钱买个土地爷是什么意思?
人心隔肚树隔皮是什么意思?
清水染白布是什么意思?
起义军打天下是什么意思?
牛鼻里爬小蟹是什么意思?
泥水匠拜佛是什么意思?
没帮的破鞋是什么意思?
马来西亚的咖啡是什么意思?
卖豆芽的不带秤是什么意思?
马尾穿豆腐是什么意思?
老鼠咬乌龟是什么意思?
拉牛上树是什么意思?
孔明加子龙是什么意思?
开了闸的水库是什么意思?
叫花子睡凉亭是什么意思?
胡同里演戏是什么意思?
狐狸说教是什么意思?
后脑勺挂笊篱(dlbo li捞取东西的用具。用金属丝、竹篾或柳条等编成。有长柄)是什么意思?
猴儿爬石崖是什么意思?
耗子眼看天是什么意思?
风箱里的老鼠是什么意思?
二流子学徒是什么意思?
钝刀子杀鸡是什么意思?
床底下伸手是什么意思?
床单做鞋垫是什么意思?
撑船的老板是什么意思?
扯着胡子打滴溜是什么意思?
跛子划船是什么意思?
磅秤上放粒芝麻是什么意思?
百年的歪脖树是什么意思?
相关推荐
还没有人回应过