汉诺塔用python解决详解
汉诺塔用python解决详解 ??? https://fishc.com.cn/thread-93850-1-1.html zltzlt 发表于 2019-9-15 13:31https://fishc.com.cn/thread-93850-1-1.html
解释一下每个步骤 zzyy-zzzz 发表于 2019-9-15 14:11
解释一下每个步骤
可以看看这个:
https://fishc.com.cn/forum.php?mod=viewthread&tid=132245&highlight=%BA%BA%C5%B5%CB%FE 对于游戏的玩法,可以简单分解为三个步骤:
1.将前63个盘子从X移动到Y上,确保大盘在上小盘在下
2.将最底下的第64个盘子从X移动到Y上
3.将Y上的64个盘子移动到Z上
这样看问题就简单了
但是,步骤1和步骤3如何执行才是最头疼的事情
但是仔细思考一下,游戏中每次我们只能移动一个圆盘,所以在移动的时候显然需要借助另外一根针才能实施。也就是说,步骤1需要借助Z将1~63个盘子移动到Y上,步骤3需要借助X将Y针上的63个盘子移到Z针上
然后我们惊奇的发现,解决这两个问题的方法和刚才第一个问题的思路是一样的,都可以拆解成三个步骤来实现
步骤1拆解为:
1.将前62个盘子从X移到Z上,确保大盘在上小盘在下
2.将最底下的63个盘子移动到Y上
3.将Z的62个盘子移到Y上
步骤2拆解为:
1.将前62个盘子从X移到Z上,确保大盘在上小盘在下
2.将最底下的63个盘子移到Z上
3.将X的62个盘子移到Y上
所以汉罗塔的拆解过程刚好满足递归算法的定义 如何简单懒汉式理解汉诺塔:
https://fishc.com.cn/thread-126371-1-1.html
页:
[1]