程序員的數(shù)學(xué)I

遞歸——自己定義自己

GNU是什么的縮寫汁尺?
“GNU is Not Unix”
這里面的GNU又是什么的縮寫?
“GNU is Not Unix”

遞歸是一種奇妙的思考方法商虐,它“使用自己來(lái)定義自己”何荚。

漢諾塔

  • 思考:有三根細(xì)圓柱(A,B,C),A柱上套著6個(gè)圓盤剃毒。這些圓盤大小各異,按從大到小的順序自下而上擺放搂赋,現(xiàn)在要把A柱上的6個(gè)圓盤全部移動(dòng)到B上赘阀,并且在移動(dòng)的時(shí)候遵守下述規(guī)則:
    1. 一次只能移動(dòng)柱子最上端的一個(gè)圓盤
    2. 小圓盤上不能放大圓盤

將1個(gè)圓盤從一根柱子移動(dòng)到另一根柱子,算移動(dòng)1次脑奠,那么將6個(gè)圓盤全部從A移動(dòng)到B最少需要移動(dòng)幾次呢基公?

漢諾塔

解題思路:

  1. 先嘗試解決3個(gè)圓盤的問(wèn)題,需要7次
  2. 仔細(xì)思考宋欺,無(wú)論如何轰豆,想移走k層的圓盤,都必須把k-1層的圓盤全部移走
  3. 因?yàn)锳BC三個(gè)柱子在不同的場(chǎng)景下會(huì)發(fā)揮不同的職能齿诞,我們假設(shè)x,y,z三個(gè)柱子酸休,x為起點(diǎn),y為目標(biāo)祷杈,z為中轉(zhuǎn)
  4. 解出n層塔的步驟斑司,即是利用z將n個(gè)圓盤從x移動(dòng)到y(tǒng)
  5. 當(dāng)n=0時(shí),不用做任何動(dòng)作
  6. 當(dāng)n>0時(shí)但汞,
  • 首先宿刮,將n-1個(gè)圓盤從x,經(jīng)由y中轉(zhuǎn)特占,移動(dòng)到z(解出n-1層)
  • 然后糙置,將1個(gè)圓盤從x移動(dòng)到y(tǒng)
  • 最后云茸,將n-1個(gè)圓盤從z柱是目,經(jīng)過(guò)x中轉(zhuǎn),移動(dòng)到y(tǒng)(解出n-1層)
  1. 從以上步驟得出結(jié)論标捺,為了解出n層的漢諾塔懊纳,我們要使用n-1層的解法揉抵,我們將解出“n層漢諾塔”所需的最少移動(dòng)步驟表示為:
    H(n),例如嗤疯,移動(dòng)0個(gè)圓盤的次數(shù)為0冤今,那么:
    H(0)=0,H(1)=1
    H(n)=H(n-1)+1+H(n-1)
    n的解法數(shù)=n-1的解法數(shù)+移動(dòng)最大的圓盤的次數(shù)+n-1的解法數(shù)
  • 我們將這種H(n)和H(n-1)的關(guān)系式稱為遞推公式(recursion relation, recurrence)

H(0)=0
H(1)=0+1+0=1
H(2)=1+1+1=3
H(3)=3+1+3=7
H(4)=7+1+7=15
H(5)=15+1+15=31
H(6)=31+1+31=63
H(n)=2^n-1推導(dǎo)式可以被數(shù)學(xué)歸納法證明

編程部分(略)

  • 關(guān)鍵步驟
    1. 找出遞歸結(jié)構(gòu)
    2. 建立地推公式

再談階乘

  • n! = n x (n-1)! ←發(fā)現(xiàn)遞歸結(jié)構(gòu)
  • 0!=1的原因茂缚,就是為了完成遞歸定義
  • 階乘的遞歸定義和數(shù)學(xué)歸納法比較類似戏罢,n=0時(shí)相當(dāng)于數(shù)學(xué)歸納法的步驟1(基底),n>=1時(shí)相當(dāng)于步驟2(歸納)脚囊。若用多米諾骨牌來(lái)打比方龟糕,“正確地定義0!”就相當(dāng)于“確保推倒第1張多米諾骨牌”。

遞歸和歸納

  • 遞歸和歸納本子上是相同的悔耘,都是將復(fù)雜問(wèn)題簡(jiǎn)化讲岁。
  • 遞歸和歸納,只是方向上不同衬以』貉蓿“從一般性前提推出個(gè)別性結(jié)論”是遞歸,“從個(gè)別性前提推出一般性結(jié)論”是歸納看峻。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末阶淘,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子互妓,更是在濱河造成了極大的恐慌舶治,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件车猬,死亡現(xiàn)場(chǎng)離奇詭異霉猛,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)珠闰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門惜浅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人伏嗜,你說(shuō)我怎么就攤上這事坛悉。” “怎么了承绸?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵裸影,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我军熏,道長(zhǎng)轩猩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮均践,結(jié)果婚禮上晤锹,老公的妹妹穿的比我還像新娘。我一直安慰自己彤委,他們只是感情好鞭铆,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著焦影,像睡著了一般车遂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上斯辰,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天艰额,我揣著相機(jī)與錄音,去河邊找鬼椒涯。 笑死柄沮,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的废岂。 我是一名探鬼主播祖搓,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼湖苞!你這毒婦竟也來(lái)了拯欧?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤财骨,失蹤者是張志新(化名)和其女友劉穎镐作,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體隆箩,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡该贾,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了捌臊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杨蛋。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖理澎,靈堂內(nèi)的尸體忽然破棺而出逞力,到底是詐尸還是另有隱情,我是刑警寧澤糠爬,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布寇荧,位于F島的核電站,受9級(jí)特大地震影響执隧,放射性物質(zhì)發(fā)生泄漏揩抡。R本人自食惡果不足惜户侥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望捅膘。 院中可真熱鬧,春花似錦滚粟、人聲如沸寻仗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)署尤。三九已至,卻和暖如春亚侠,著一層夾襖步出監(jiān)牢的瞬間曹体,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工硝烂, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留箕别,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓滞谢,卻偏偏與公主長(zhǎng)得像串稀,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子狮杨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 遞歸——自己定義自己2 思考:和的定義 假設(shè)n為0以上的整數(shù)母截,使用遞歸的方式從0到n的整數(shù)之和。n=0時(shí), S(n...
    鍋巴GG閱讀 891評(píng)論 0 1
  • 數(shù)序歸納法——如何征服無(wú)窮序列 高斯求和 思考題——存錢罐里的錢 第1天橄教,往存錢罐里投入1元清寇,存錢罐總金額為1元第...
    鍋巴GG閱讀 214評(píng)論 0 0
  • 排列組合 I 解決計(jì)數(shù)問(wèn)題的方法 計(jì)數(shù)——與整數(shù)的對(duì)應(yīng)關(guān)系 計(jì)數(shù)就是計(jì)數(shù)對(duì)象和整數(shù)的對(duì)應(yīng)起來(lái)的過(guò)程,注意兩點(diǎn):遺漏...
    鍋巴GG閱讀 356評(píng)論 0 0
  • 排列組合II 思考:從5張牌中任意取出3張進(jìn)行排列(permutation)护蝶,請(qǐng)問(wèn)有多少種排列方法华烟? 排列和置換相...
    鍋巴GG閱讀 299評(píng)論 0 0
  • 簡(jiǎn)書不支持LaTex... 余數(shù) 周期性和分組 思考:奇數(shù)和偶數(shù) 奇數(shù)是被2除余1的整數(shù)偶數(shù)是被2整除(余0)的...
    鍋巴GG閱讀 890評(píng)論 0 1