汉诺塔是一个非常经典的数学模型,它有一个古老的传说。相传印度主神大梵天在创造世界的同时,也造了三根金刚石柱子。其中一根柱子上放着64个大小均不相同的圆盘。大梵天命令婆罗门将这64个圆盘按照从大到小的顺序移动到另一根柱子上,在移动的过程中始终要保持大盘在下,小盘子在上。这就是最早关于汉诺塔的古老传说。这其实是一种时间的象征,因为按照这个规则,将64个圆盘移动到另一个圆柱上,在时间上来说几乎是不可能的,需要的时间可能比宇宙诞生的时间还要长,具体为什么?文章会为大家详细说明。
我们首先将这个游戏简化。我们设定有A、B、C三根柱子,A柱子上从下往上放的是从大到小依次排好顺序的盘子,B和C柱子是空的。我们需要将A柱子上所有的圆盘移动到C柱子上,移动的过程中,始终保持大盘子在下,下盘子在上,这就是汉诺塔的游戏规则。
先从最基础的说起。- 一个圆盘子:如果只有一个圆盘子,那只需要移动一次,直接移动到C柱子上。
- 两个圆盘子:如果有两个圆盘子,我们需要借助B柱子,将第一个盘子移动到B柱子上,第二个盘子移动到C柱子上,然后将B柱子上的盘子移动到C柱子上。这样两个盘子就全部移动过来,总共需要3步。