求大神賜教,過程和符號不懂
def?move(n,?a,?b,?c): ????if?n?==1: ????????print?a,?'-->',?c ????????return ????move(n-1,?a,?c,?b) ????print?a,?'-->',?c ????move(n-1,?b,?a,?c) move(4,?'A',?'B',?'C')
def?move(n,?a,?b,?c): ????if?n?==1: ????????print?a,?'-->',?c ????????return ????move(n-1,?a,?c,?b) ????print?a,?'-->',?c ????move(n-1,?b,?a,?c) move(4,?'A',?'B',?'C')
2017-04-07
舉報
2017-04-07
????關于漢諾塔的問題,游戲規則是有abc三根柱子,在a柱子上套著n個盤子,盤子自上而下越來越大,我們的任務是把盤子全部轉移到c盤子上去,但是每次只能移動一個盤子,只有把盤子套在某個柱子上以后才能動其他盤子,而且套盤子時不能讓大盤子蓋在小盤子上。
????那么我們可以把這個問題簡化成這樣,既然要轉移n個盤子,
我們可以先把n-1個盤子從a放到b上,move(n-1,a,c,b),
然后把一個盤子從a拿到c ,a -->c,
然后再把那n-1個盤子從b拿到c move(n-1,b,a,c)
這樣推理下去的盡頭是什么呢,就是僅有一個盤子的時候,
只要,然后把一個盤子從a拿到c ,a -->c,