sheep (@echozy)汉诺塔问题的递归解法 中发帖

汉诺塔问题是这样的: 
​ 给定三根柱子,记为 A,B,C ,其中 A 柱子上有 n 个盘子,从上到下编号为 0 到 n−1 ,且上面的盘子一定比下面的盘子小。问:将 A 柱上的盘子经由 B 柱移动到 C 柱最少需要多少次?
[Pasted image 20241201202551]
对于汉诺塔问题我们进行一个简单的分析
对于三层的汉诺塔我们思考一下如何去实现
首先最大的圆盘一定是放在c柱子的最底层, 那么这个时候我们需要先把上面的两个盘子移到中间的柱子上,这样两侧的柱子 a柱只有一个最大号盘子 c柱为空 这样我们就实现了把最大号盘子移动到c盘了,此时我们可以认为最大号盘子被消掉了,只需要把b柱上的圆盘移动到c柱子即可,同上我们要把第二大的圆盘移动到c盘需要做到 b柱子只有一个第二大盘子 c柱子只有一个最大盘子 那么 a柱只有一个最小号盘子这样我们又可以实现移动第二大盘子的操作,第...