怎么理解汉罗塔问题_初学者如何深入理解汉诺塔问题?

今天我也看到递归了。

我的思路如下,递归源于归纳,当n等于1时,推出结果。当n等于t-1时推出结果,并能由此推出,当n等于t时也推出结果,即M(t)能表达出M(t-1)的关系。

第一步确定汉诺塔的结果是什么。

汉诺塔的结果就是当有几个圆盘在原柱子时,结果就是就把这些柱子移到目标柱子。展开就是当n等于1时,结果就是把一个圆盘从原柱子移到目标柱子,当n等于t-1时,结果就是把t-1个圆盘从原柱子移到目标柱子,当n等于t时,结果就是把t个圆盘从原柱子移到目标柱子。

要递归的第二个条件就是确定M(t)和M(t-1)这里的M()方法都一样,即从原柱子有t-1个盘子和有t个盘子时移动到目标柱子,完成结果的方式和步骤一样,即那三步要一样,或者说链条要一样。所以要写出t-1个盘子时移动到结果的三个步骤和t个盘子移动移动到结果的三个步骤,进行对比,步骤和方式是否一样。如果一样,再进行下一步。

在这基础上,是发现M(t)和M(t-1)的关系,M(t)和M(t-1)的关系可以表示为M(t,s,t)=M(t-1,s,m)+(t,s->t)+M(t-1,m,t)

综上,确定汉诺塔是一个递归问题。

根据上面分析,确定了基例,确定了链条,往模板上套吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值