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