day1 漢諾塔
02-03
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 問題, 怎麼利用這個能力賺錢?