4.梵塔问题:有3个柱子(1,2,3)和3个不同尺寸的圆盘(A,B,C)。在每个圆盘的中心有个孔,所以圆盘可以堆叠在柱子上。最初,全部3个圆盘都堆在柱子1上:最大的圆盘C在底部,最小的圆盘A在顶部。要求把所有圆盘都移到柱子3上,每次只许移动一个,而且只能先搬动柱子顶部的圆盘,还不许把尺寸较大的圆盘堆放在尺寸较小的圆盘上。
编程实现梵塔问题算法,演示算法过程(即圆盘在柱子之间移动过程)和结果。
问题拓展:梵塔问题可以推广为更一般的n个盘子在3个柱子间移动,随着n增长,该问题状态数将以指数形式增加。