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柱子。
(以上内容均为记录个人学习点滴,认识浅薄,个人理解而已)