用Python实现汉诺塔
时间: 2023-11-05 21:02:22 浏览: 77
以下是Python实现汉诺塔的代码:
```python
def hanoi(n, from_rod, to_rod, aux_rod):
if n == 1:
print("移动盘子1从", from_rod, "到", to_rod)
return
hanoi(n-1, from_rod, aux_rod, to_rod)
print("移动盘子", n, "从", from_rod, "到", to_rod)
hanoi(n-1, aux_rod, to_rod, from_rod)
n = 3
hanoi(n, 'A', 'C', 'B')
```
在上面的代码中,我们定义了一个名为`hanoi`的递归函数,它接受四个参数:`n`表示盘子的数量,`from_rod`表示起始柱子,`to_rod`表示目标柱子,`aux_rod`表示辅助柱子。
如果盘子数量为1,则直接将盘子从起始柱子移动到目标柱子。
否则,我们首先将前n-1个盘子从起始柱子移动到辅助柱子,然后将最后一个盘子从起始柱子移动到目标柱子,最后将前n-1个盘子从辅助柱子移动到目标柱子。
我们将上述函数应用于起始柱子A、目标柱子C和辅助柱子B,盘子数量为3。运行代码,输出结果如下:
```
移动盘子1从 A 到 C
移动盘子2从 A 到 B
移动盘子1从 C 到 B
移动盘子3从 A 到 C
移动盘子1从 B 到 A
移动盘子2从 B 到 C
移动盘子1从 A 到 C
```
这些输出告诉我们如何移动盘子,以便将它们从起始柱子A移动到目标柱子C。
阅读全文