python實現漢諾塔


經典遞歸算法漢諾塔分析:

  1. 當A柱子只有1個盤子,直接A --> C
  2. 當A柱子上有3個盤子,A上第一個盤子 --> B, A上最后一個盤子 --> C, B上所有盤子(1個) --> C
  3. 當A柱子上有那個盤子,A上n-1個盤子 --> B,A上最后一個盤子 --> C, B上所有盤子(n-1個)--> C 規律:
  4. 當有1個盤子時,A(1) --> C
  5. 當有n個盤子時,A(n-1)--> B, A(1)--> C, B(n-1) --> C
def move(n, a, b, c):
    if n == 1:
        print('%s --> %s' % (a, c)) # 只有1個盤子,A --> C
    else:
        move(n-1, a, c, b) # 有n個盤子,借助於C,A(n-1) --> B
        move(1, a, b, c) # 有n個盤子,A(1) --> C
        move(n-1, b, a, c) # 有n個盤子,借助於A,B(n-1) --> C


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM