python关于汉诺塔游戏的一部分理解

python汉诺塔游戏代码学习理解

针对汉诺塔代码中三个步骤中柱子的代码变化,个人的理解为:
(i,j,k)为三个柱子初始的参数——(将操作的柱子,中介柱子,目标柱子),随后根据算法需要对柱子参数进行变化:
a)把i柱子上除了最底下的一个圆盘也就是N-1个盘,通过k移动到j柱子上。
– 形成代码就是:
move(n-1, i, k, j)
其中是对i柱子操作,中介为k柱子,目标到达j柱子。
b)把N-1个盘移动到j上以后,那么i上仅剩下一个最大盘,k上无盘,那么就可以直接从i上把最大盘移动到k上了。(基本原则)
– 形成代码就是:
move(1, i, j, k)
其中是对i柱子上的最大盘操作,其中直接移动至目标k柱子(可视中介为j柱子)
c)k上已经有最大盘了,然后把j上N-1个盘再通过i,一个一个的移动到k柱上。(递归开始)
move(n-1, j, i, k)
其中操作j柱子,中介为i柱子,目标到达k柱子。
(以上内容均为记录个人学习点滴,认识浅薄,个人理解而已)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值