河內塔遞迴

法國數學家愛德華·盧卡斯提出一個問題,大意如下

有三根柱子,原先有n個圓盤套在同一根柱子,圓盤依大小由下而上,越上層則越小。如果完成移動n個圓盤套在其他的同一根柱子,需要移動的次數是多少 ﹖」

假設完成移動n個圓盤套在其他的同一根柱子,需要移動的次數是 an顯然a1=1。


總共移動1+1+1(次)= 2×1+1(次)完成移動2層圓盤需要a2(次),a2= 2×1+1= 2×a1+1=3(次)。

總共移動3+1+3(次)=2×3+1(次)完成移動3層圓盤需要a3(次),a3=2×3+1= 2×a2+1=7(次)。

 

a1=1
a2=2×a1+1
a3=2×a2+1=2×(2×a1+1)+1=(22a1+2)+1
a4=2×a3+1=2×((22a1+2)+1)+1=(23a1+22a1+2)+1
.

.

an=2×an-1+1=(2n-1a1+2n-2a1+........+23a1+22a1+2)+1=2n-1a1+2n-2a1+........+23a1+22a1+21+20
= 2n-1+2n-2+........+23+22+21+20
=  20+21+22+23.......+2n-2+2n-1
= $\large\frac{2^n-1}{2-1}$=2n-1

 

另有想法用遞迴關係式 an=2an-1+1,a1=1,求an的通式。
因為an=2an-1+1,所以an+1=2an-1+1+1,得an+1=2(an-1+1)。因此
a2+1=2(a1+1)         ...(1)
a3+1=2(2a2+1)       ...(2)
a4+1=2(2a3+1)       ...(3)
.
.
an+1=2(an-1+1)     ...(n-1)
上列各式相乘(1)×(2)×(3)×....×(n-1),等號左右等量除對消後,得an+1=2(a1+1)×2n-2
因為a1=1,所以 an+1=22×2n-2,得an=2n-1

 

如果起始有n個圓盤在同一根柱子(A),越上層的圓盤越小您得將原先第二層到第n層的圓盤移到另外第二根柱子(B),總共需移動2n-1 - 1次。之後,將原先的第一層圓盤(最大者)移至第三根空柱(C)上;再將柱子(B)的n-1個圓盤移到柱子(C)上,總共需移動2n-1 - 1次。完成整個過程需要移動的次數是(2n-1 - 1)+1+(2n-1 - 1)=2n - 1(次)。

 

「有三根柱子,原有n個圓盤套在同一根柱子,圓盤依大小由下而上,越上層則越小。欲完成移動n個圓盤套在其他的同一根柱子,則需要移動圓盤共2n-1次。」

 

相關遊戲︰河內塔


Copyright ©昌爸工作坊 all rights reserved.