您的位置:

用python解决汉诺塔问题(python汉诺塔问题代码)

本文目录一览:

python语言汉诺塔(hanoi)问题

move(n, A, B) 就表示把第n个饼从A柱移到B柱, 其中step是个全局变量,用来记录移动的次数。

hanoi(n, A, B, C) 就是你所问的实现递归的函数, 表示把n个饼从A柱通过B柱移到C柱。

其中 n==1 是递归的最基本的情况, 如果只有一个饼就直接移到目标柱子即可。

不然呢我们就先把最上面n-1个饼从A通过C移到B,注意这里移到的是B柱哦~, 然后把第n块饼移到C柱,再重新把之前移到B柱上的n-1个饼通过A移动到C。

整个过程挺直白的,想通了就明白了

python利用递归解决汉诺塔问题,求大神解释一下代码

这是一个典型的递归程序

当只有一层的时候,直接把x放到z上结束

当大于1层的时候,先把x和z放到y上,然后继续递归

把y放到x上,然后放到z上,结束处理

python解决汉诺塔问题?

解汉诺塔最简单的做法就是递归:

类似如何将大象装进冰箱:1)将冰箱门打开;2)把大大象放进去;3)把冰箱门关上……

我们将所有的盘都在同一个杆上从大到小排列视为【完美状态】,那么,目标就是将最大盘片为n的完美状态从a杆移到b杆,套用装大象的思路,这个问题同样是三步:

1)把n-1的完美状态移到另一个杆上;

2)把n移到目标杆上;

3)把n-1的完美状态移到目标杆上。

如下: