漢諾塔作業與內在邏輯的思考

2021-08-31 06:52:53 字數 545 閱讀 2079

def hano(n,a,b,c):

if n==1:

print(a,"挪移到",c)

return none

if n==2:

print(a,"挪移到",b)

print(a,"挪移到",c)

print(b,"挪移到",c)

return none

#n代表了挪移的柱子數,第二個引數為起始點,第三個引數為借助的平台,第四個引數為目的地

#因此,內在邏輯為:先借助第三個品台執行n-1次漢諾函式將n-1根鐵棒挪到第二個上面(此時b為目的地)

#把最後一根放到目標位置、即第三個平台c,然後問題轉化為n-1階漢諾塔的問題

#即起始位置為b,借助平台為a,目的地為c

hano(n-1,a,c,b)

print(a,"挪移到",c)

hano(n-1,b,a,c)

a="第一根柱子"

b="第二根柱子"

c="第三根柱子"

n=5hano(n,a,b,c)

漢諾塔問題的再回顧與再思考。

問題 漢諾塔 problem description 漢諾塔 又稱河內塔 問題是印度的乙個古老的傳說。開天闢地的神勃拉瑪在乙個廟裡留下了三根金剛石的棒a b和c,a上面套著n個圓的金片,最大的乙個在底下,其餘乙個比乙個小,依次疊上去,廟裡的眾僧不倦地把它們乙個個地從a棒搬到c棒上,規定可利用中間的一...

漢諾塔的非遞迴實現及其思考

有關問題的遞迴實現和非遞迴實現其實是我們理解計算機,或者說程式語言中關於函式呼叫的方式最好的方式之一,它讓我們知道了某種程式語言在實現函式呼叫的方式,也是計算機程序切換的一種思想的體現。我們先來說說漢諾塔問題 漢諾塔問題是乙個經典的問題。漢諾塔 hanoi tower 又稱河內塔,源於印度乙個古老傳...

漢諾塔的實現

漢諾塔是大學遇見的第乙個使用遞迴的問題。這個問題的解決方法充分展示了遞迴給程式帶來的遍歷 如果不使用遞迴的話,那麼就需要細緻的分析。這裡不談非遞迴的解法。漢諾塔問題介紹 在印度,有這麼乙個古老的傳說 在世界中心貝拿勒斯 在印度北部 的聖廟裡,一塊黃銅板上插著三根寶石針。印度教的主神梵天在創造世界的時...