汉诺塔问题和升级版汉诺塔

来源:互联网 发布:php分类信息源码 编辑:程序博客网 时间:2024/05/14 22:30
经典问题:
有三根相邻的柱子,标号为A,B,C,A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘,要把所有盘子一个一个移动到柱子B上,并且每次移动同一根柱子上都不能出现大盘子在小盘子上方,请问至少需要多少次移动,设移动次数为H(n)。
递归思想
 
H⑴ = 1
H(n) = 2*H(n-1)+1 (n>1)
那么我们很快就能得到H(n)的一般式:
H(n) = 2^n - 1 (n>0)

 

升级问题:

AC之间不能直接移动,其他类似

H⑴ = 2,H(2)=8;
H(n) = 3*H(n-1)+2 (n>1) 比正常的时候,多操作
H(n)=3^n-1;
原创粉丝点击