標籤:

day1 漢諾塔

day1 漢諾塔

第一天的演算法很簡單,就是使用Python實現漢諾塔。

知道漢諾塔的人都知道,這是比較費腦的問題。

  • 1. 遞歸的將N-1個盤子從左移動到中間
  • 2. 將最大的盤子從左邊移到右邊
  • 3. 遞歸的將N-1的盤子從中間移到右邊

代碼如下:

def hanoi(height,left=left,right=right,middle=middle):nt"""nt將盤子從左邊移到右邊nt"""ntif height:ntthanoi(height-1,left,middle,right)nttprint(left,=>,right)ntthanoi(height-1,middle,right,left)nnif __name__ == __main__:nthanoi(3)n

輸出的結果為:

left => rightnleft => middlenright => middlenleft => rightnmiddle => leftnmiddle => rightnleft => rightn

推薦閱讀:

為什麼最難不過二叉樹的演算法出現在面試題中都會被應聘者抱怨?
深度增強學習之Policy Gradient方法1
如何通俗易懂地講解牛頓迭代法求開方?
如果我能靠心算解決任何 NP-hard 問題, 怎麼利用這個能力賺錢?

TAG:Python | 算法 |