漢諾塔遞歸算法圖解 如何理解漢諾塔遞歸?
如何理解漢諾塔遞歸?河內(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)塔的原型被寫為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列——
遞歸完成