遞歸算法
瀏覽量:2886
在起始條件已知的情況下,解決一類重復(fù)性問題的最佳方案莫過于使用程序設(shè)計(jì)的三大基本結(jié)構(gòu)之一的“循環(huán)”結(jié)構(gòu)(分為“有限次”和“無限次”循環(huán)兩種情況)。然而現(xiàn)實(shí)生活中也存在這樣一類問題——起始條件不明確,但結(jié)尾卻已知;或者問題自身嵌套著自身。在這種情況下我們將采用反向思維,從結(jié)尾條件開始往前推演,直到把起始條件推算出為止。這樣的一種算法往往被成為“遞歸”法。本章節(jié)將主要對(duì)此算法進(jìn)行一系列的探究。
一、遞歸法的定義和數(shù)學(xué)模型:
遞歸法在數(shù)學(xué)上的表達(dá)函數(shù)有點(diǎn)特殊,它是一種自調(diào)用函數(shù),形式如下:
從定義式可以看出遞歸函數(shù)的最大特征在于自身的輸出作為自身的輸入,直至輸入為某一個(gè)條件而終止。
下面就結(jié)合實(shí)踐,具體闡述并驗(yàn)證這一理論。
【例1】有甲、乙、丙、丁四人,從甲開始到丁,一個(gè)比一個(gè)大1歲,已知丁10歲,問甲幾歲?
【分析】這是遞歸法的一道非常典型的題目——因?yàn)槲覀兛梢院茱@然知道:假設(shè)要計(jì)算甲的年齡,那么必須直到乙的年齡;同樣,算乙的必須直到丙的,算丙的必須知道丁的,因?yàn)槎∫阎匀豢梢酝巴扑懔恕,F(xiàn)在假設(shè)有一個(gè)數(shù)學(xué)模型(函數(shù))可以計(jì)算出他們各自的年齡(方便期間我們給他們編號(hào)——甲=1,乙=2,丙=3,丁=4),那么存在這一個(gè)F(X)函數(shù),X表示某人的編號(hào),其規(guī)律如下:
F(1)=F(2)+1
F(2)=F(3)+1
F(3)=F(4)+1
F(4)=10
顯然,直到X=4