下面是一個Python的漢諾塔問題的遞歸解決方案的代碼示例:
def hanoi(n, source, target, auxiliary):
if n > 0:
# 將 n-1 個盤子從源柱移動到輔助柱
hanoi(n-1, source, auxiliary, target)
# 將最底下的盤子從源柱移動到目標(biāo)柱
print(f"Move disk {n} from {source} to {target}")
# 將 n-1 個盤子從輔助柱移動到目標(biāo)柱
hanoi(n-1, auxiliary, target, source)
# 測試
hanoi(3, 'A', 'C', 'B')
這段代碼中,hanoi
函數(shù)接受四個參數(shù):整數(shù)n
表示盤子的數(shù)量,字符串source
表示源柱,字符串target
表示目標(biāo)柱,字符串auxiliary
表示輔助柱。函數(shù)使用遞歸的方式解決漢諾塔問題。
在hanoi
函數(shù)中,首先檢查n
是否大于0。如果是,則遞歸調(diào)用函數(shù)本身:
source
到auxiliary
)。source
到target
)的操作。auxiliary
到target
)。最后,我們調(diào)用hanoi
函數(shù)來測試代碼,并將source
設(shè)置為"A",target
設(shè)置為"C",auxiliary
設(shè)置為"B"。