河內塔遞迴
法國數學家,愛德華·盧卡斯提出一個問題,大意如下︰
「有三根柱子,原先有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.