1. 程式人生 > >python中漢諾塔問題的求解

python中漢諾塔問題的求解

漢諾塔問題是源於印度一個古老傳說的益智玩具。大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片黃金圓盤。大梵天命令婆羅門把圓從下面開始按大小順序重新擺放在另一根柱子上。並且規定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動一個圓盤。


(a)是初始狀態,也就是遞迴的起點,我們假設n=4, move(4,A,B,C)

<這個函式要實現的功能是把n個環從A按照一定的規則,藉助B,移動到C>

(b)是step1完成的時候的狀態,已經將所有的n-1,這裡也就是3個環從A挪到了B

<第一處遞迴,move(n-1,A,C,B) 這個函式要實現將n-1個環從A,藉助C,移動到B>

(c)是step2,此時需要將第n個,也就是第四個最大的環從A挪到C

<move(1,A,B,C),或者乾脆直接print("A ->C")>

(d)是step3,此時需要將B上面的n-1個環從B挪到C<第二處遞迴>

<第二處遞迴,move(n-1,B,A,C) 這個函式要實現將n-1個環從B,藉助A,移動到C>