def?move(n,?a,?b,?c):????
????print?n,a,b,c????
????if?n?==1:????????
????????print?a,?'-->',?c????????
????????return????
????move(n-1,?a,?c,?b)????
????print?'one',n-1,a,c,b????
????move(1,a,b,c)????
????print?'two',1,a,b,c????
????move(n-1,?b,?a,?c)????
????print?'three',n-1,b,a,c
move(4,?'A',?'B',?'C')
運行結果:
4?A?B?C
3?A?C?B
2?A?B?C
1?A?C?B
A?-->?B
one?1?A?C?B
1?A?B?C
A?-->?C
two?1?A?B?C
1?B?A?C
B?-->?C
three?1?B?A?C
one?2?A?B?C
1?A?C?B
A?-->?B
two?1?A?C?B
2?C?A?B
1?C?B?A
C?-->?A
one?1?C?B?A
1?C?A?B
C?-->?B
two?1?C?A?B
1?A?C?B
A?-->?B
three?1?A?C?B
three?2?C?A?B
one?3?A?C?B
1?A?B?C
A?-->?C
two?1?A?B?C
3?B?A?C
2?B?C?A
1?B?A?C
B?-->?C
one?1?B?A?C
1?B?C?A
B?-->?A
two?1?B?C?A
1?C?B?A
C?-->?A
three?1?C?B?A
one?2?B?C?A
1?B?A?C
B?-->?C
two?1?B?A?C
2?A?B?C
1?A?C?B
A?-->?B
one?1?A?C?B
1?A?B?C
A?-->?C
two?1?A?B?C
1?B?A?C
B?-->?C
three?1?B?A?C
three?2?A?B?C
three?3?B?A?C
2019-01-26
我把每一步參數變化都打印出來了,雖然理解還是有點費勁,但是知道了具體的函數參數變化,雖然抽象理解是把n-1移動到b,把1移動到c,再把n-1移動到c,但計算機是不會理解這個想法的,可是如果不懂計算機是如何運作的,又如何能夠如此巧合的語言,很糾結