利用python实现汉诺塔
时间: 2024-06-07 11:03:32 浏览: 142
python实现汉诺塔
汉诺塔是一个经典的递归问题,可以用Python编写。以下是一个基于递归的解决方案:
```python
def hanoi(n, source, target, auxiliary):
if n > 0:
hanoi(n - 1, source, auxiliary, target)
if source:
target.append(source.pop())
hanoi(n - 1, auxiliary, target, source)
source = [4,3,2,1]
target = []
auxiliary = []
hanoi(len(source), source, target, auxiliary)
print(target)
```
这个函数接受四个参数:n表示盘子的数量,source表示初始的塔,target表示目标塔,auxiliary表示辅助塔。在每个递归调用中,我们将n-1个盘子从源塔移动到辅助塔上,将第n个盘子从源塔移动到目标塔上,最后将n-1个盘子从辅助塔移动到目标塔上。
阅读全文