从汉诺塔的故事中领悟到的递推数列通项的求法
从汉诺塔问题看递推关系在实际问题中的应用

从汉诺塔问题看递推关系在实际问题中的应用姓名:孙瑞 学号:200640501218 指导老师:马玉田摘要:本文主要介绍了递推关系在实际中的应用,对几个实际问题的分析,让我们清楚的看到递推关系在解决实际问的强大作用.关键词:数列 递推关系 汉诺塔 九连环 蛛网模型引言: 递推关系在实际问题中有着广泛的应用.由连续变量可以建立微分方程模型,离散变量可以建立递推关系模型. 经过分析可知,常、偏微分方程除非在极其特殊的情况下,否则一般不存在解析解,所以讨论起来非常麻烦,比如最基本的平衡点的稳定性,往往只能得到局部稳定性,全局稳定性很难得到,而递推关系模型可以达到全局的效果,另外,由递推关系获得的结果又可以进一步进行优化分析、满意度分析、分类分析、相关分析等等。
而在实际中,连续变量可以用离散变量来近似和逼近,从而微分方程模型就可以近似于某个递推关系模型。
递推关系模型有着非常广泛的实际应用背景,我们的前人建立了许多著名的模型,如生态模型,传染病模型,经济模型(如蛛网模型),人口控制模型(如著名的马尔萨斯人口控制模型)等等.定义:设012,,,,n a a a a 是一个数列,把该数列中n a 与它的前面几个(01)i a i n ≤≤-关联起来构成的方程,称为一个递推关系,即(,,)n j k a f a a =(0,1)j k n ≤≤-.下面让我们看看递推关系在汉诺塔问题中的应用.引例:汉诺塔(又称河内塔)问题是印度的一个古老的传说。
开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。
面对庞大的数字(移动圆片的次数)18446744073709551615,看来,众僧们耗尽毕生精力也不可能完成金片的移动汉诺塔问题:它是由三根固定的柱子ABC 和不同尺寸的n 个圆盘组成.开始时,这些个大小不同的圆盘依其半径大小依次套在A 柱上,使大圆盘在底下.游戏的规则是:每次的圆盘从一根柱子移到另一根柱子上,但是不允许这个圆盘放在比它小的圆盘上面.游戏的目标是把所有的圆盘从按照大小的次序从A 柱都移到C 根柱子上,可以利用中间的B 柱子,在移动过程中药始终将最大的圆盘放在最下面.令n H 表示解n 个圆盘的汉诺塔游戏所需要的移动次数,建立关于序列{n H }递推关系 解 开始时n 个圆盘在A 柱上,按照游戏规则用1n H -次移动将上面的1n -个圆盘移到C 柱子上,在这些移动中最大圆盘不动.然后,用1次移动将最大圆盘移到B 柱子上.再用1n H -次移动将C 柱子上的1n -个圆盘移到B 柱子上并且放到最大圆盘上面,于是,得到所求递推关系.121n n H H -=+和初始条件是11H =.因为根据游戏规则,一个圆盘可用1次移动从A 柱子放到B 柱子上.为求解上述递推关系,对该问题首先用构造方法导出其解公式如下:1232233123112212(21)12(21)21222122221222121n n n n n n n n n n n H H H H H H ---------=+=++=++=+++=+++++=++++=-其中11H =, 21nn H =-确是递推关系121n n H H -=+的解.现在我们再回头看看古印度的那个问题,勃拉玛要求移动64个圆盘,带入我们所求的关系式即是64642118446744073709551615H =-=,面对这个天文数字,庙中僧侣要想移动这64个圆盘几乎是不可能的.从汉诺塔问题我们看到递推关系在解决实际问题中的巨大作用,,它在众多领域里有着广泛的应用,由此我们看看由汉诺塔问题所引出的一些实际问题.(1)九连环方程问题九连环是中国古代在民间流传的一种玩具,它是由9个环,9个直杆,一个条形框柄和一个平板组成,.每一个环都有一根杆相连,又顺序穿入后一个环,再连在条形横板上,从而构成一个整体,与其相适应,大小相当的一个条形框柄,可以将9个环穿套在上下框柄.只有它前面的换单独在框柄上面.只是穿套不可能一次性完成,有着严格的规律性和特别的要求.第一个环可以独立,自由地上或下条形框柄,而其后的各环要上或下框柄都受其前面的连杆和环的限制,任何一个环要独立,自由地上下框柄只要它前面的换单独在框柄上就能做到.现在可以假设前n 个环已经全部上到框柄上,需要移动环的次数为S (1,2,9)n n = .这样,将前1n -个环都上到框柄上时,需要移动1S n -次,反之将前2n -个环下到框柄下.移动次数和之前的情形一样为2S n -,此时只有第1n -个环单独在框柄上,可将第n 个环上到框柄上,移动一次,再将前2n -环上到框柄上,移动次数为2S n -,至此,前面n 个环都上到框柄上,总的移动次数为12212S S 1S S 2S 1n n n n n -----+++=++,按假设,它等于S n ,所以有12S S 2S 1n n n --=++,补充定义0S 0=显然1S 1=(1,2,9)n = 这就是九连环的基本方程.利用它可以计算出2S 2=,并递推地求出S n .直接求解可将两边都加上和减去1S 1n -+,得:211S S 12(S S 1)2n n n n n ---++=++=和12S -S 12S n n n ---=,求平均得: 12S S 2n n n --=+,递推下去,有 +1+2324S S 2S S 2i i i n n n ---=+++=+ ,累加得111S S (22)3i n i n ++=+-,其中i 与n 同奇偶性,并且1i =或2.为求S i 和+12i ,可设S cos i u v n π+=,则有121u v u v +=-⎧⎨+=⎩, 解方程组,得 2,3u v ==, 所以1S (3cos )2i n π=+设+12cos i p q n π⋅+=,则有4181p q p q +=-⎧⎨+=⎩,解方程组得12p =,3q =-.所以有+122(3cos )i n π=+带入解表达式+111S S (22)3i n n i +=+-,有111S (3cos )[22(3cos )]23n n n n ππ+=++-+,整理,得1111S 2cos 326n n n π+=⨯--,这即是九连环方程的解.如果令1S S H n n n -+=表示第n 个环单独在框柄上要移动环的次数,代人基本方程,消去S 有1H 2H 1n n -=+,这可以视为九连环第二方程,也就是我们前面所提及的汉诺塔方程(2)递推关系在几何上的应用例1 一个人从坐标原点0(0,0)A 出发,通过点(1,0),1(1,1)A 然后再以折线通过整数坐标的点11122223(1,1),(2,1),(2,1),(2,2),(2,2),(2,2),(2,3),(3,3)B C D A B C D A ------- 试求此人沿着折线到点(,)m n 时所走的路程(0)m n >>.解:用0a 表示这个人由原点0(0,0)A 走到1(1,1)A 的路程, k a 表示此人由点(,)k A k k 走到点1(1,1)k A k k +++的路程,则当2k ≥时,由1(1,1)k A k k ---走到(,)k A k k 时经过的路程是1111(1,1)(1,1)(1,1)(,1)(,).k k k k k A k k B k k C k k D k k A k k ------→-+-→-+-+→-+→所以,得11111111(22)(22)(21)(21)86k k k k k k k k ka A B B C C D D A k k k k k --------=+++=-+-+-+-=-.因为此公式当1k=时得02a =,故数列{}n a 的通项公式186k a k -=-(1,2,3,)k = .当此人从 0(0,0)A 到(,)m A m m 时,走的路程是10m kk a-=∑,即1011112P (86)86(1)86422m mmk k k k a k k mm m m m m --====-=-+=⋅-=-∑∑∑.由点(,)m n 到点(,)m A m n 的路程为()m n -,故此人由原点0(0,0)A 走到点(,)m n 的路程是2242()43.m m m n m m n ---=-+在求图形中的无限个图形的面积或无限条线段长的和时,首先要确定这些面积或线段长所组成的数列.为此,要求出第一个图形的面积或第一条线段的长度,以及前后两个图形面积或线段之间的递推关系,然后再用有关的公式求和.例2 如图所示,在直角ABC ∆中, ABC=90,A=.θ︒∠∠自B 点出发,作1BD AC ⊥于1D ,作12D D AB ⊥于2D ,作23D D AC ⊥于3D , 依此做下去,得到无穷数列11223CB,BD ,D D ,D D ,(1) 求证: 11223CB+BD +D D +D D +>AB+AC . (2) 求证: 2222211223CB +BD +D D +D D +=AC .(3) 为使11223ABD,AD D ,AD D ,∆∆∆ 的面积之和不大于ABC ∆的面积,求θ的取值范围.解 (1)由已知条件可得1212BD BC cos ,D D BD cos BC cos ,θθθ=⋅=⋅=⋅在n n+1n+2Rt D D D ∆中可知: n+1n+2n n+1D D =D D cos θ (n=1,2,3,) .由上式联立可知,数列11223CB,BD ,D D ,D D , 是首项为CB ,公比为cos θ的等比数列,又因而它又是无穷递缩等比数列,故11223CBCB,BD ,D D ,D D ,1-cos θ=,CB (1cos )CBAB+AC=CBctg +sin sin θθθθ+⋅=, 从而CB (1cos )CB sin (1sin )CB 1cos sin (1cos )sin θθθθθθθ+⋅--=⋅--θ是锐角,故上式的值为正值,因此11223CB+BD +D D +D D +>AB+AC(2) 显然,数列222211223CB ,BD ,D D ,D D 是首项为2CB ,公比为2cos θ的无穷递缩等比数列,因此,222222112232222CB CB CB +BD +D D +D D +==1cos sin CB ==AC sin θθθ-⎛⎫ ⎪⎝⎭(3)1ABD 11112212311S =BD AD =BD (BD ctg )2211=BD ctg (BC cos )ctg 22BC cos ,2sin θθθθθθ∆⋅⋅⋅⋅=⋅= 又1ABD ∆∽12AD D ∆,于是1122ABD 2122AD D 1S D D ==cos S BD θ∆∆, ∴12ABD 2S(cos )ABD θ∆=∆.因为n n+1AD D ∆与n+1n+2AD D ∆相似,于是n+1n+2n n+12AD D 22n+1n+2n+1n+22AD D n n+1n n+1S D D D D ==()=cos S D D D D θ∆∆, ∴ n+1n+2n n+122AD D AD D S(cos )S θ∆∆=.由上式可知,数列11223ABD AD D AD D S ,S ,S ,∆∆∆ 是首项为23BC cos 2sin θθ,公比为2cos θ的无穷递缩等比数列,故1122323ABD AD D AD D 223232BC cos 2sin S +S +S 1-cos BC cos BC (ctg ),2sin 2θθθθθθ∆∆∆+=== 又2ABC 11S =AB BC=BC ctg 22θ∆⋅, 依题意令223BC BC (ctg )ctg 22θθ≤ ,得2tg 1θ≥. 于是在02πθ<<的条件下,得42ππθ≤<,因此,当42ππθ≤<时,11223ABD ,AD D ,AD D ,∆∆∆ 的面积之和不大于ABC ∆的面积.(3)递推关系在概率论中的应用随着科学技术的发展,递推关系在各个领域得到越来越多的应用,本文将介绍递推关系的一个简单的应用,即利用递推关系求概率问题.全概率公式是概率中一个最基本、最常用、最重要的公式.利用全概率公式列出递推关系,然后通过解递推关系求得概率,从而简化了应用全概率公式求解某些问题的复杂繁琐性.下面让我们看两个具体实例:例1 投掷硬币n 次,第一次出现正面的概率为c ,第二次后每次出现与前一次相同的表面的概率为p ,求第n 次出现正面的概率.解 设n A ={第n 次出现正面},则由全概率公式可得:111()()()()()n n n n nA A P A P A P P n P A n+++=+.(1)n n P p P p =+-即1(21)(1)n n P p P p +=-+- 由上述递推关系及初始条件1P c =当1p ≠时,有11[1(21)](21)2n n n p P c p ----=+-111(21)(21)22n n p c p ---=-+-111()(21)22n c p -=--+,当1p =时,有n P c ≡.例2 在每一次试验中,事件A 出现的概率p ,试问n 次独立试验中A 出现偶次的概率多少? 解 设n P 表示n 次独立实验中A 出现偶次的概率,则根据题意可列出关系式1(12)n n P p p P -=+-,用迭代法将其展开可得21222323221211110(12)(12)(12),(12)(12)(12),(12)(12)(12),(12)(12)(12).n n n n n n n n n n p P p p p P p P p p p P p P p p p P p P p p p P ----------=-+--=-+--=-+--=-+-其中,01P =,且上述表示对原方程组进行递推连锁变换,同乘以12p -,然后将上述n 个方程两边相加,约去含1P 至1n P -的各项,则21(12)(12)(12)(12)[1(12)](12)21(12),2n nn nnn P p p p p p p p p p p p pp -=+-+-++-+---=+-+-=(4) 递推关系在物理学中的应用递推关系在工程技术领域的某些方面有重要应用.原因在于递推关系方程满足许多领域的方程形式,而解法又满足n 阶常系数方程的形式.所以物理领域中的问题只要条件满足递推关系方程,一般都可以方便解之.下面以二阶齐次递推关系方程为例,略述其在物理方面的一些应用.例 如图l 所示系统,点0P 保持对地面的恒定电位0V ,试求1231,,,n P P P P - 各点的电位.分析: 根据Kirchhoff 定律:流入电路中任何节点的电流之和等于流出该节点的电流之和.因此在一般点1x P +(图2),可得11x x x i i I ++=+,由VI R =,可得:11212x x x x x V V V V V r r r++++--=+, 整理得 21502x x x V V V ++-+= (1)式(1)在2,3,,(2)x n =- 时成立,就是说在点1P 与1n P -之外的所有点上成立,在点1P 与1n P -,式(1)化为相应条件21052V V V -+= (0V 为已知) (2)22502n n V V ---+=(0n V =) (3) 方程(1)满足递推关系2105()02x E E E V -+=的形式, 故可采用递推关系方程求解,式(1)特征方程为25102M M -+=解得 112M = , 22M = 其全解为 1()22x xx V A B =+将其带入式(2)和(3)得05(4)(2)422A AB B V -+++=, 12125(2)(2)0222n n n n A AB B -----+++=, 求方程得 202221n nA V =- , 02121n B V =--, 所以电压的通解 20221(2)221xx x nV V π=--. 可以验之,在0x =和x n =点均满足上式. (5)市场经济中的蛛网模型经济背景与问题:在自由竞争的市场经济中,商品的价格是由市场上该商品的供应量决定的,供应量越大,价格就越低。
汉诺塔问题的规律

汉诺塔的规律是:二进制数的进位变化规律与汉诺塔问题的处理思路一样。
汉诺塔,又称河内塔,是一个源于印度古老传说的益智玩具。
大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。
大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。
并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
法国数学家爱德华·卢卡斯曾编写过一个印度的古老传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。
印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。
不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。
僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。
不管这个传说的可信度有多大,如果考虑一下把64片金片,由一根针上移到另一根针上,并且始终保持上小下大的顺序。
汉诺塔问题求解思路

汉诺塔问题求解思路汉诺塔问题是⼀个经典的问题。
汉诺塔(Hanoi Tower),⼜称河内塔,源于印度⼀个古⽼传说。
⼤梵天创造世界的时候做了三根⾦刚⽯柱⼦,在⼀根柱⼦上从下往上按照⼤⼩顺序摞着64⽚黄⾦圆盘。
⼤梵天命令婆罗门把圆盘从下⾯开始按⼤⼩顺序重新摆放在另⼀根柱⼦上。
并且规定,任何时候,在⼩圆盘上都不能放⼤圆盘,且在三根柱⼦之间⼀次只能移动⼀个圆盘。
问应该如何操作?分析如果是初次接触类似的问题,乍看之下肯定会感觉⽆从下⼿。
要把64个圆盘从a柱⼦移动到c柱⼦上,第⼀步应该怎么做?虽然可以肯定,第⼀步唯⼀的选择是移动a最上⾯的那个圆盘,但是应该将其移到b还是c呢?很难确定。
因为接下来的第⼆步、第三步……直到最后⼀步,看起来都是很难确定的。
能⽴即确定的是最后⼀步:最后⼀步的盘⼦肯定也是a最上⾯那个圆盘,并且是由a或b移动到c——此前已经将63个圆盘移动到了c上。
也许你会说,管他呢,先随便试着移动⼀下好了。
如果你这么做,你会发现,接下来你会⾯临越来越多类似的选择,对每⼀个选择都“试”⼀下的话,你会偏离正确的道路越来越远,直到你发现你接下来⽆法进⾏为⽌。
如果将这个问题的盘⼦数量减为10个或更少,就不会有太⼤的问题了。
但盘⼦数量为64的话,你⼀共需要移动约1800亿亿步(18,446,744,073,709,551,615),才能最终完成整个过程。
这是⼀个天⽂数字,没有⼈能够在有⽣之年通过⼿动的⽅式来完成它。
即使借助于计算机,假设计算机每秒能够移动100万步,那么约需要18万亿秒,即58万年。
将计算机的速度再提⾼1000倍,即每秒10亿步,也需要584年才能够完成。
注:在我的笔记本电脑上,每秒⼤约能够移动6~8百万步。
虽然64个盘⼦超出了⼈⼒和现代计算机的能⼒,但⾄少对于计算机来说,这不是⼀个⽆法完成的任务,因为与我们⼈类不同,计算机的能⼒在不断提⾼。
分解问题⼀股脑地考虑每⼀步如何移动很困难,我们可以换个思路。
汉诺塔问题的详解课件

03 汉诺塔问题的变 种和扩展
多层汉诺塔问题
01
02
03
定义
多层汉诺塔问题是指将多 层的盘子从一个柱子移动 到另一个柱子,同时满足 汉诺塔问题的规则。
难度
随着盘子层数的增加,解 决问题的难度呈指数级增 长。
子从中间柱子移动到目标柱子。
递归解法的优点是思路简单明了,易于 理解。但是,对于较大的n值,递归解 法的时间复杂度较高,容易造成栈溢出
。
分治策略
分治策略是解决汉诺塔问题的另一种方法。它将问题分解为若干个子问题,分别求解这些子 问题,然后将子问题的解合并起来得到原问题的解。
分治策略的基本思路是将汉诺塔问题分解为三个阶段:预处理阶段、递归转移阶段和合并阶 段。预处理阶段将n-1个盘子从起始柱子移动到中间柱子,递归转移阶段将第n个盘子从起 始柱子移动到目标柱子,合并阶段将n-1个盘子从中间柱子移动到目标柱子。
制作汉诺塔问题的动画演示
除了使用Python或数学软件进行可视化演示外,还可以使 用动画制作软件来制作汉诺塔问题的动画演示。这些软件 提供了丰富的动画效果和编辑工具,可以创建生动有趣的 演示。
在动画演示中,可以使用不同的颜色和形状来表示不同的 柱子和盘子。通过添加音效和文字说明,可以增强演示的 视觉效果和互动性。最终的动画演示可以保存为视频文件 ,并在任何支持视频播放的设备上播放。
使用Python的图形库,如matplotlib或tkinter,可以创建汉诺塔的动态演示。 通过在屏幕上绘制柱子和盘子,并模拟移动过程,可以直观地展示汉诺塔问题的 解决方案。
Python代码可以编写一个函数来模拟移动盘子的过程,并在屏幕上实时更新盘 子的位置。通过递归调用该函数,可以逐步展示移动盘子的步骤,直到所有盘子 被成功移动到目标柱子上。
数列的递推关系与通项求解

数列的递推关系与通项求解数列是数学中常见的概念,指由一系列有序的数按照一定规律排列而成的序列。
在数列中,数之间存在着一种递推关系,即后一个数与前一个数之间的关系可以通过某种规律来确定。
而通过递推关系,我们还可以求解数列的通项公式,从而能够快速计算数列中任意位置的数值。
数列的递推关系指的是数列中每个数与它前面的数之间的关系,可以通过加减乘除等运算来表示。
常见的数列递推关系有等差数列、等比数列和斐波那契数列等。
其中,等差数列中的每个数与它前面的数之差都相等;等比数列中的每个数与它前面的数之比也相等;而斐波那契数列中的每个数是前两个数之和。
了解数列的递推关系对于求解数列的通项公式非常重要。
通项公式是数列中每个位置上的数值所满足的规律,通过该公式可以便捷地计算数列中任意位置上的数值,而不需要逐个递推计算。
求解通项公式的方法根据数列的递推关系不同而异。
对于等差数列,我们可以使用通项公式An=a1+(n-1)d来求解。
其中,An表示数列中第n个位置的数值,a1为数列的首项,d为公差(即相邻两个数之间的差)。
对于等比数列,通项公式为An=a1*r^(n-1),其中An表示数列中第n个位置的数值,a1为数列的首项,r为公比(即相邻两个数之间的比值)。
而对于斐波那契数列,由于其递推关系较为特殊,不能直接使用通项公式求解。
一种常见的求解方法是使用递推法,即通过前两个数的和来计算后一个数。
斐波那契数列的递推关系可以表示为Fn=Fn-1+Fn-2,其中Fn表示数列中第n个位置的数值,F1和F2分别为数列的前两个数。
在实际问题中,数列的递推关系和通项公式的求解常作为数学问题的重点。
通过分析数列的递推关系,可以帮助我们更好地理解数学问题的背后规律,并快速求解数列中任意位置的数值。
因此,掌握数列的递推关系与通项求解方法对于数学学习具有重要意义。
总之,数列的递推关系与通项求解是数学中的重要概念。
了解数列的递推关系以及求解通项公式的方法,可以帮助我们更好地理解数学问题,提高问题解决的效率。
汉诺塔问题的详解课件

04
数据结构与排序
汉诺塔问题也可以用来解释和演示不同的 数据结构和排序算法。
05
06
通过汉诺塔问题,人们可以更好地理解如 堆、栈等数据结构的应用和优劣。
在物理学中的应用
复杂系统与自组织
汉诺塔问题在物理学中常被用来研究复杂系统和自组织现 象。
通过对汉诺塔问题的深入研究,人们可以发现其在物理学 中的一些应用,如量子计算、自旋玻璃等。
人工智能与机器学习
在人工智能和机器学习中,汉诺塔问题可以被用来演示 如何使用不同的算法来解决问题。
06
总结与展望
对汉诺塔问题的总结
汉诺塔问题是一个经典的递归问题,其核心在于将一个复杂的问题分解为若干个简单的子问题来解决 。
通过解决汉诺塔问题,我们可以了解到递归算法在解决复杂问题中的重要性,以及将大问题分解为小问 题的方法。
此外,汉诺塔问题还被广泛应用于数学教育和计算机 科学教育中,成为许多课程和教材中的经典案例之一
。
02
汉诺塔问题的数学模型
建立数学模型
定义问题的基本参数
盘子的数量、柱子的数量和塔的直径 。
建立数学方程
根据问题的特点,我们可以建立如下 的数学方程。
递归算法原理
递归的基本思想
将一个复杂的问题分解成更小的子问题来解决。
通过深入研究汉诺塔问题的本质和解决方法,我们可以 为解决其他领域的问题提供有益的启示和方法。
THANKS
感谢观看
其他移动规则
除了传统的规则(盘子只能放在更大的盘子下面)之外,还 可以有其他移动规则,这会改变问题的性质和解决方案。
05
汉诺塔问题的应用场景
在计算机科学中的应用
算法设计与优化
01
【算法】汉诺塔问题

【算法】汉诺塔问题汉诺塔问题是⼀个经典的问题。
汉诺塔(Hanoi Tower),⼜称河内塔,源于印度⼀个古⽼传说。
⼤梵天创造世界的时候做了三根⾦刚⽯柱⼦,在⼀根柱⼦上从下往上按照⼤⼩顺序摞着64⽚黄⾦圆盘。
⼤梵天命令婆罗门把圆盘从下⾯开始按⼤⼩顺序重新摆放在另⼀根柱⼦上。
并且规定,任何时候,在⼩圆盘上都不能放⼤圆盘,且在三根柱⼦之间⼀次只能移动⼀个圆盘。
问应该如何操作?当只有⼀个盘⼦时这是最简单的情况:只需将1号盘⼦从X塔移动到Z塔就OK于是我们可以写出如下的函数,来模拟完成这个过程。
假设盘⼦是⽤1,2,3...按照⼤⼩编码代表的,⽽塔则是⽤⼀个字符char表⽰的。
//将编号为 number 的盘⼦从 from 塔座移到 to 塔座void move(int number , char from , char to){std::cout<<"move dish "<<number<<": "<<from<<"--->"<<to<<std::endl;}有两个盘⼦时有2个盘⼦,⽬标是:将X塔上的盘⼦借助Y移动到Z盘⼦上。
特别的,为了好描述,我把X塔叫做源塔,因为盘⼦起初在这个塔上,把Y塔叫做辅助塔,因为Y塔只是起个过渡作⽤。
把Z盘叫做⽬标塔,最后所以的盘⼦都在这个塔上。
我们可以写出伪代码move(1,X,Y);move(2,X,Z);move(1,Y,Z);有三个盘⼦时在盘⼦数⼤于2的时候,⽆论有多少个盘⼦,我们眼⾥只有2个盘⼦:即最底层的最⼤的盘⼦,和它上⾯的所有盘⼦组和形成的⼀个盘,我们可以把它看做是2.5号盘。
这样考虑的好处是:⽆论有多少盘⼦,都可以⽤2个盘⼦的思路去做。
简化了思路。
因此,步骤是:1、将2.5号盘借助Z塔移动到Y塔上。
注意,处理这步操作时,X是源塔,Z是辅助塔,Y是⽬标塔2、将3盘移动到Z塔上,3、将2.5盘借助X塔移动到Z塔上。
汉诺塔问题通项公式

汉诺塔问题通项公式
汉诺塔问题家传户晓,其问题背景不做详述,此处重点讲解在有3根柱子的情况下,汉诺塔问题求解的通项公式的推导。
问题背景:有A,B和C三根柱子,开始时n个大小互异的圆盘从小到大叠放在A柱上,现要将所有圆盘从A移到C,在移动过程中始终保持小盘在大盘之上。
求移动盘子次数的最小值。
变量设置:n为圆盘个数,H(k)为n=k时移动盘子次数的最小值。
递推公式: H(k)=2H(k-1)+1。
通项公式:H(k)=2^k-1。
证明:
(1)证明递推公式:首先被移动到C盘的必定是最大的盘子,否则必定违反“在移动过程中始终保持小盘在大盘之上”的规定。
既然要将最大盘移动到C,此时最大盘之上必定没有任何盘子,亦即它独自在一根柱子上,要做到这点最优做法当然是先把较小的n-1个盘子由A移动到B,剩下最大盘独自在A。
将n-1个盘由A移动到B花费的最少次数为H(n-1)。
此时再将最大盘由A移动到C,此时移动总次数为H(n-1)+1。
接着把剩下的n-1个盘由B移动到C,花费的最少次数当然也是H(n-1)。
于是得到总移动次数2H(n-1)+1.证得H(k)=2H(k-1)+1。
(2)推导通项公式。
由H(k)=2H(k-1)+1得H(k)+1=2(H(k-1)+1),于是{H(k)+1}是首项为H(1)=1,公比为2的等比数列,求得H(k)+1 =
2^k,所以H(k) = 2^k-1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
又 S =叮 +盯 +可 + … +耵 =盯r ・ r 2
[ )()()… (), ( 。 } } + ” }+ + + }]
所 以l S =百 2 — — i r・ m :4 .
所 以 A :2 .
同理可得 A =2. r
从 而 A += +r l +, 1 A + n =2 j +
落 蘸蘸 矮 枣
遴 爨 壤 攥 逶 救蕊
,
、
杨 苍洲 ( 建省 惠安 高级 中学) 福
0- |
。
二 ,
汉 诺 塔 ( 称 河 内塔 ) 问 题 是 印度 的 到 C杆 ,则 必 然 要 把 一1 金 片 从 杆 必 须 弄 明 白构 成 数 列 的 前 一项 和 后 一 项 的 又 个
棒 ,第一 根上 面套着 6 4个 圆形 的金片 , 最 大的一个 在底下 ,其余 一个 比一 个小 ,
1阶汉 诺 塔 的 移 动 :A C,需 1次 ; —
2阶汉诺 塔 的移动 :A一曰 ,A—C, 个 以图象为背景的递推数列通项 的求法. 依次叠上去 ,寺 院的僧侣依照一个古老的 曰 ,需 3次 ; 一c 例 1 (o o年湖 北高考理科卷)如 2l 预言,不知疲倦地把它们一个个地从这根 3阶汉诺 塔 的移 动 :A—c,A一日, 图2 ,在 半 径 为 r的 圆 内作 内接 正 六边 形 ,再 作 正六边 形 的 内切 圆 ,又在 此 内 切 圆 内作 内接 正六边 形 ,如 此无 限继续 下去 .设 为前 n个 圆 的面积 之和 ,则
究前 后 两 个 圆 的 半 径 与
的 关 系 ,得
到递推 关系式 ,并利 用等 比数 列的 定义 所 以僧侣 们需 要搬 动 2 “一1 才 能 求 解 . 次 动多少 次才能把 金片 从 杆 全部 移到 c 把金 片从 A杆全部 移到 C杆 ,这是 个非 解 :记 为第 n个 圆 0 的半径 ,则 杆? 常大的天文数字 ,看来 ,众僧们耗尽毕生 下面我们来计算一下 ,僧侣们需要搬
汉诺 塔的破解很简单 ,就是按照移动 精力也不 可能完成金片的移动. 规则向一个方 向移动金片 ,可 以先写出前 上 面神话故事 的破 解过程告诉 我们 , 几项进行观察 ,在观察 中发现规律 ,我们 为求 出数列的通项公式 ,有时需要研究数 可 以发现 ,要把 n个金 片从 A杆 全部移 列 的递推关系 ,要研究数列的递推关系就
=2 .
( ) 次 移 动 一 块 金 片 ,小 的 只 能 叠 2每 在 大 的上 面 ;
所 以 { +1 是 以 a + 1 % } =2为 首 项 , 公 比 q=2的 等 比数列 .
( ) 所 有金 片从 A 杆 全部 移 到 c 3把
杆上 .
所 以 %+1 =2, 所以 %=2 1 .
一
! :o 0: -n ) c 。 ≥ (≥2, s 3
—
f
所 以{n是 以 r=r r} 为首 项 ,公 比为
的等 比数列.
,
2 墓 教 论 一 ~ 一一 8 _ 青 珐 0 军 i 础 2~ 1 — ~ 一 珀
所 ( 以=
- r .
设 C 的圆 心 为 ( ) A ,0 , 则 由题 意 得 n r ,
戏:
( B)4 2 r
所 以 +1 ( 】 ) :2 一+1.
( ) 三 根 杆 子 A、B、 C 1有 ,其 中 A
杆 上 有若 干金 片 从 下 向 』是 由大 到 小 ; -
所 以
% 一I+ J
( 孚要 求 S,则 必 须 求解 每 个 圆的 面积 ,要 求每 个 圆的 面积 ,则 必须 求 解 圆 的 半 径 , 所 以假 设 圆 的 半 径 为 ,研
则 n阶 汉 诺 塔 的 移 动 ,必 然 经 过 把 n一1 金 片 从 4 日,再 把 第 n 金 片从 个 一 个
l S :( i m ) .
棒 搬 到 另 一 根棒 上 ,规 定 可 利用 中间 的 一 C B,A C,B A,B C,A C,需 ’ — — — — —
根棒作为帮助 ,但每次只能搬一个 ,而且 次 ; 大 的不能放在小 的上面 ,预言说 ,当这些 金片移动完毕后 ,世界就会灭亡.
▲… 一 一 L
图 1
A C,然 后 再 把 n一1 金 片 从 曰 C; — 个 一 设 n n≥ 2 阶 汉 诺 塔 的 移 动 需 要 % ( )
次 ,所 以 要 把 ,一1 金 片 从 A一 需 要 z 个
a n ,把第 /个金 片从 / 次 7 , l —c需要 1 , 次 再把 n—t 个金片从 B c又需 要 a一 次 , — n。
所 以 a =2 1 , n %一 +1
( A)6 2 盯r
图 2
后来 ,这 个传说 就演 变 为汉 诺塔 游
一
个古 老的传说.传说 中,开天辟地 的神 全 部 移 到 日 杆 ,于 是 我 们 可 以 构 造 出递 关 系式 ,所 以研 究 构 成 数 列 的前 一 项 和 后
勃 拉 玛 在 一 个 庙 里 留 下 了 一 根 金 刚 石 的 推 关 系 .
一
项 的关系式成为我们解答数列递推关系 的关键所在 . 下面我们介绍近年 高考 中几
l} 一
【 评述 】 差 、等比数 列是 数列 的基 等 础 ,若 一个递 推的数列 问题是 一个等 差 、
等 比数 列 的 问题 ,则 可 以利 用 等 差 、等 比 数 列 的 有 关公 式 、性 质 进 行 求解 . 例 2 (0 0年 安 徽 高 考 文 科 卷 ) 设 21 C ,C, … ,C ,… 是 坐 标 平 面 上 的一 列 . 2