漢諾伊塔 的Python基本實現

2021-07-22 09:01:22 字數 813 閱讀 4806

漢諾塔 ( 的移動也可以看做是遞迴函式。

我們對柱子編號為a, b, c,將所有圓盤從a移到c可以描述為:

如果a只有乙個圓盤,可以直接移動到c;

如果a有n個圓盤,可以看成a有1個圓盤(底盤) + (n-1)個圓盤,首先需要把 (n-1) 個圓盤移動到 b,然後,將 a的最後乙個圓盤移動到c,再將b的(n-1)個圓盤移動到c。

請編寫乙個函式,給定輸入 n, a, b, c,列印出移動的步驟

函式 move(n, a, b, c) 的定義是將 n 個圓盤從 a 借助 b 移動到 c

move(n, a, b, c)

例如,輸入 move(2, 『a』, 『b』, 『c』),列印出:

a –> b

a –> c

b –> c

#函式 move(n, a, b, c) 的定義:

#將 n 個圓盤從 a 借助 b 移動到c

defmove

(n, a, b, c):

if n==1:

print a, '-->', c

return

#將上方n-1個圓盤,由a,借助c,放到b

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

#此時其餘n-1個圓盤已經放至b

#將a最後乙個大圓盤,由a直接放到c

print a, '-->', c

#將已經放到b的n-1個圓盤,借助a,放到c

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

return

move(4, 'a', 'b', 'c')

python 漢諾塔 Python漢諾塔

import turtle class stack def init self self.items def isempty self return len self.items 0 def push self,item def pop self return self.items.pop def ...

Python實現漢諾塔

原始碼 move n,a,b,c 這個函式不要理解為abc三個柱子。請這樣理解,move函式,用來完成這麼乙個任務 把n個盤子,從 源柱 通過 過渡柱 移動到 目標柱 上。即move n,source,bridge,destination 為了完成這個任務,需要將此母任務分解為三個子任務 1.把 源...

漢諾塔python實現

def hanoi height,left,center,right 漢諾塔,將高為height的塔從left借助center移到right if height1 一層漢諾塔,直接從left到right print 第 層 從 format height,left,right else 大於等於兩層...