📜  河内递归塔使用4钉/棒

📅  最后修改于: 2021-05-04 16:59:57             🧑  作者: Mango

河内塔是一个数学难题。传统上,它由三个磁极和许多可以滑动到任何磁极上的不同大小的磁盘组成。难题始于盘片整齐地排列,以一极大小的升序排列,顶部最小,因此呈圆锥形。难题的目的是借助第三极(例如辅助极)将所有磁盘从一个极(例如“源极”)移动到另一极(例如“目标极”)。

该难题具有以下两个规则:

1.您不能将较大的磁盘放在较小的磁盘上
2.一次只能移动一个磁盘

我们已经讨论了时间复杂度为O(2 ^ n)的河内塔的递归解决方案。使用4个杆,相同的方法显示出时间复杂度的显着降低。

例子:

Input : 3
Output :
Move disk 1 from rod A to rod B
Move disk 2 from rod A to rod C
Move disk 3 from rod A to rod D
Move disk 2 from rod C to rod D
Move disk 1 from rod B to rod D

Input : 5
Output : 
Move disk 1 from rod A to rod C
Move disk 2 from rod A to rod D
Move disk 3 from rod A to rod B
Move disk 2 from rod D to rod B
Move disk 1 from rod C to rod B
Move disk 4 from rod A to rod C
Move disk 5 from rod A to rod D
Move disk 4 from rod C to rod D
Move disk 1 from rod B to rod A
Move disk 2 from rod B to rod C
Move disk 3 from rod B to rod D
Move disk 2 from rod C to rod D
Move disk 1 from rod A to rod D
C++
CJavaPython 3C#PHP


C


Java


Python 3


C#


PHP