前段时间做编译课设时老师提到了汉诺塔的非递归不容易做出来,于是我趁着寒假有点时间就想试着搞一搞。下面我把我的一些草稿先列出来,以免以后忘记。
下面这个模型是适合于偶数个盘片的情况的。奇数的情况类似可得。
根据图1,我把每三个输出(如ab,ac,bc表示表示盘片从a移到b上,盘片从a移到c上,盘片从b移到c上)用一个数来标记,这里我把它标记为1,具体见图2。
然后根据递归算法下的输出来导出一些数据。
根据导出的数据,每24个输出为一个单位,得到8个数字,每8个数字之间会形成规律,再对这种规律进行分析即可。
由于我还不会把递归算法的数据自动导出为数字,所以这些工作还没有完结,以后会导出了再来继续解决。
=
汉诺塔非递归解法探索
本文探讨了汉诺塔问题的非递归解法,并针对偶数个盘片的情况提出了一种标记方法。通过对递归算法的输出进行转换和分析,作者试图找出隐藏在其中的规律。

718

被折叠的 条评论
为什么被折叠?



