漢諾塔三層步驟 如何理解漢諾塔遞歸?
如何理解漢諾塔遞歸?河內(nèi)塔可以理解為一個(gè)移動(dòng)塔的游戲,移動(dòng)n層塔從一個(gè)支柱到另一個(gè)2。這是河內(nèi)塔的遞歸原型,漢諾塔(n,a,c)-n層塔從一根柱子移動(dòng)到c柱;每次你必須返回到這個(gè)原型,它被認(rèn)為是遞歸完
如何理解漢諾塔遞歸?
河內(nèi)塔可以理解為一個(gè)移動(dòng)塔的游戲,移動(dòng)n層塔從一個(gè)支柱到另一個(gè)
2。這是河內(nèi)塔的遞歸原型,漢諾塔(n,a,c)-n層塔從一根柱子移動(dòng)到c柱;每次你必須返回到這個(gè)原型,它被認(rèn)為是遞歸完成
!3. 在中間B柱的幫助下,河內(nèi)塔的原型被寫(xiě)為hunnuota(n,a,B,c)-n層塔在B柱的幫助下從a柱移動(dòng)到c柱,這應(yīng)該被理解;
4。遞歸需要一個(gè)出口,這是控制條件。當(dāng)n=1時(shí),塔可以直接從a移到C,C是出口
5。當(dāng)n>1時(shí),這一步是理解漢諾塔遞歸的關(guān)鍵,它必須形成n-1層移到C柱的形式,可分為三步:
A.如果n層不能同時(shí)移動(dòng),可以理解為先將A上面的n-1層移到B柱
Ba柱,塔的剩余n層移到C柱,
C,然后在B列上形成n-1層移動(dòng)到C列——
遞歸完成
既然你想用簡(jiǎn)單的白話(huà)解釋遞歸算法,我就給你解釋一下,確保你能理解。
有個(gè)熟悉的故事,正好可以解釋遞歸。
這個(gè)故事不斷地調(diào)用自己,遞歸是一個(gè)函數(shù)多次調(diào)用自己。不同的是遞歸不能像這個(gè)故事那樣多次調(diào)用自己。遞歸必須有終止條件,它將在多次調(diào)用后終止。
這個(gè)解釋很口語(yǔ)化。