汉诺塔问题
一个柱子,自下而上圆片由大到小的情况,一次仅移动一片,小的不能在大的下面,完全移到另外一个圆柱上所需要的转移次数
分析过程如下:
- 1个圆片的情况下,移动次数为1
A-B
- 2个圆片的情况下,移动次数为3
定义圆片由大到小编号为1-2,柱子为A,B,C;B12表示由下到上B柱子上的圆片顺序情况,则
初始状态为:A12,B0,C0
A2-B2
A1-C1
B2-C12
- 3个圆片的情况下,移动次数为7
定义圆片由大到小编号为1-3,柱子为A,B,C;B12表示由下到上B柱子上的圆片顺序情况,则
初始状态为:A123,B0,C0
A123-B3
A12-C2
B3-C23 到此为止,23已按顺序排好放到另外的柱子上,需要转移的次数为,2个圆片时移动的次数
A1-B1 剩余最大的一个,移到B柱子上
C23-A3
C2-B12
A3-B123 重新将之前在C柱子上排好的23移到B柱子上,需要转移的次数为,2个圆片时移动的次数
3个圆片转移所需总次数为:“移动2个圆片时的次数”+1+“移动2个圆片时的次数”
类推得出递归公式:f(n)=2f(n-1)+1 ---------- f(n)=2^n-1