汉诺塔问题

一个柱子,自下而上圆片由大到小的情况,一次仅移动一片,小的不能在大的下面,完全移到另外一个圆柱上所需要的转移次数

分析过程如下:

  • 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

posted @ 2018-10-11 10:20  lufengkenan  阅读(123)  评论(0编辑  收藏  举报