从汉诺塔问题看递推关系在实际问题中的应用
从汉诺塔的故事中领悟到的递推数列通项的求法
又 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 的半径 ,则 杆? 常大的天文数字 ,看来 ,众僧们耗尽毕生 下面我们来计算一下 ,僧侣们需要搬
四柱汉诺塔问题数学公式
四柱汉诺塔问题数学公式摘要:1.四柱汉诺塔问题的背景和概述2.四柱汉诺塔问题的数学公式3.四柱汉诺塔问题的解决方案4.四柱汉诺塔问题的应用案例正文:【1.四柱汉诺塔问题的背景和概述】四柱汉诺塔问题是一个数学游戏问题,它的起源可以追溯到法国数学家爱德华·卢卡斯在1883 年提出的汉诺塔问题。
汉诺塔问题是指有三根柱子,其中一根柱子自底向上串着尺寸渐小的多个圆盘,遵循以下规则:一次只能移动一个圆盘;大圆盘不能放在小圆盘上面。
问题在于,最少需要移动多少步,才能将所有圆盘移到另一根柱子上。
在汉诺塔问题的基础上,四柱汉诺塔问题增加了一个条件,即如果再加一根柱子(即现在有四根柱子a,b,c,d),计算将n 个盘从第一根柱子(a) 全部移到最后一根柱子(d) 上所需的最少步数。
【2.四柱汉诺塔问题的数学公式】为了解决四柱汉诺塔问题,我们可以使用Frame-Stewart 算法。
此算法可以给出一个推测的最优解,它通过递推公式来计算每个步骤所需的最少步数。
对于四柱汉诺塔问题,Frame-Stewart 算法的递推公式如下:f(n, d) = 3 * f(n-1, d) + 2 * f(n-2, d) + f(n-3, d)其中,f(n, d) 表示将n 个盘从第一根柱子(a) 全部移到最后一根柱子(d) 上所需的最少步数。
【3.四柱汉诺塔问题的解决方案】根据Frame-Stewart 算法的递推公式,我们可以通过计算得到四柱汉诺塔问题的解决方案。
假设我们要将n 个盘从第一根柱子(a) 全部移到最后一根柱子(d) 上,我们可以按照以下步骤进行操作:1.将n-3 个盘从a 柱移动到c 柱上,需要f(n-3, c) 步;2.将n-2 个盘从a 柱移动到b 柱上,需要f(n-2, b) 步;3.将n-1 个盘从a 柱移动到d 柱上,需要f(n-1, d) 步;4.将n-2 个盘从b 柱移动到d 柱上,需要f(n-2, d) 步;5.将n-1 个盘从c 柱移动到d 柱上,需要f(n-1, d) 步。
汉诺塔问题的详解课件
03 汉诺塔问题的变 种和扩展
多层汉诺塔问题
01
02
03
定义
多层汉诺塔问题是指将多 层的盘子从一个柱子移动 到另一个柱子,同时满足 汉诺塔问题的规则。
难度
随着盘子层数的增加,解 决问题的难度呈指数级增 长。
子从中间柱子移动到目标柱子。
递归解法的优点是思路简单明了,易于 理解。但是,对于较大的n值,递归解 法的时间复杂度较高,容易造成栈溢出
。
分治策略
分治策略是解决汉诺塔问题的另一种方法。它将问题分解为若干个子问题,分别求解这些子 问题,然后将子问题的解合并起来得到原问题的解。
分治策略的基本思路是将汉诺塔问题分解为三个阶段:预处理阶段、递归转移阶段和合并阶 段。预处理阶段将n-1个盘子从起始柱子移动到中间柱子,递归转移阶段将第n个盘子从起 始柱子移动到目标柱子,合并阶段将n-1个盘子从中间柱子移动到目标柱子。
制作汉诺塔问题的动画演示
除了使用Python或数学软件进行可视化演示外,还可以使 用动画制作软件来制作汉诺塔问题的动画演示。这些软件 提供了丰富的动画效果和编辑工具,可以创建生动有趣的 演示。
在动画演示中,可以使用不同的颜色和形状来表示不同的 柱子和盘子。通过添加音效和文字说明,可以增强演示的 视觉效果和互动性。最终的动画演示可以保存为视频文件 ,并在任何支持视频播放的设备上播放。
使用Python的图形库,如matplotlib或tkinter,可以创建汉诺塔的动态演示。 通过在屏幕上绘制柱子和盘子,并模拟移动过程,可以直观地展示汉诺塔问题的 解决方案。
Python代码可以编写一个函数来模拟移动盘子的过程,并在屏幕上实时更新盘 子的位置。通过递归调用该函数,可以逐步展示移动盘子的步骤,直到所有盘子 被成功移动到目标柱子上。
汉诺塔问题
汉诺塔问题
汉诺塔问题是使用递归解决问题的经典范例。
汉诺(Hanoi)塔问题:古代有一个梵塔,塔内有三个座A、B、C,A座上有64个盘子,盘子大小不等,大的在下,小的在上(如图)。
有一个和尚想把这64个盘子从A座移到B座,但每次只能允许移动一个盘子,并且在移动过程中,3个座上的盘子始终保持大盘在下,小盘在上。
在移动过程中可以利用B座,要求打印移动的步骤。
如果只有一个盘子,则不需要利用B座,直接将盘子从A移动到C。
•如果有2个盘子,可以先将盘子1上的盘子2移动到B;将盘子1移动到c;将盘子2移动到c。
这说明了:可以借助B将2个盘子从A移动到C,当然,也可以借助C将2个盘子从A移动到B。
•如果有3个盘子,那么根据2个盘子的结论,可以借助c将盘子1上的两个盘子从A移动到B;将盘子1从A移动到C,A变成空座;借助A座,将B上的两个盘子移动到C。
这说明:可以借助一个空座,将3个盘子从一个座移动到另一个。
•如果有4个盘子,那么首先借助空座C,将盘子1上的三个盘子从A移动到B;将盘子1移动到C,A变成空座;借助空座A,将B座上的三个盘子移动到C。
代码如下:。
汉诺塔规律总结
汉诺塔规律总结汉诺塔是一个古老而富有智慧的益智游戏,也是程序设计中经典的递归例子之一。
虽然最初是一个故事中的谜题,但在计算机领域中找到了广泛的应用。
在这篇文章中,我将总结汉诺塔的规律,并解释其中的原理和应用。
一、汉诺塔的起源与规则简介汉诺塔的起源可以追溯到古老的印度传说。
根据传说,这个益智游戏最初是由寺庙里的僧侣发明的。
汉诺塔由三个柱子和一组不同大小的圆盘组成。
这些圆盘按照从大到小的顺序放在柱子上,最大的在底部,最小的在顶部。
游戏的目标是将所有的圆盘从一个柱子移动到另一个柱子,但在移动过程中必须遵循以下规则:1. 只能移动一个圆盘;2. 每次移动必须将圆盘放在一个比它大的圆盘上;3. 可以用第三个柱子作为中转。
这些规则看似简单,但实际上引出了许多有趣的数学和计算问题。
二、汉诺塔的递归解法在解决汉诺塔问题时,递归是最常用的方法。
递归是一种解决问题的思维方式,通过将一个大问题拆分成若干个相同或相似的子问题来求解。
汉诺塔问题的递归解决方案如下:1. 如果只有一个圆盘,直接将它从源柱子移动到目标柱子;2. 如果有多个圆盘,那么先将上面的 n-1 个圆盘从源柱子移动到辅助柱子;3. 然后将最大的圆盘从源柱子移动到目标柱子;4. 最后将 n-1 个圆盘从辅助柱子移动到目标柱子。
这个递归算法非常巧妙。
通过将问题分解成更小的子问题,我们可以很容易地解决每个子问题,并将它们组合起来得到整个问题的解答。
值得注意的是,汉诺塔的递归解法的时间复杂度为O(2^n),因此在处理大规模问题时需要注意效率。
三、汉诺塔的数学规律通过观察汉诺塔的移动过程,我们可以发现一些有趣的数学规律。
这些规律对于理解问题和设计算法都非常有帮助。
1. 最少步数:对于汉诺塔问题,移动 n 个圆盘最少需要 2^n - 1 步。
这个结论可以通过数学归纳法来证明,但超出了本文的范围。
2. 移动顺序的规律:如果将汉诺塔问题划分为奇数和偶数个圆盘两种情况,我们可以观察到移动的规律:2.1 奇数个圆盘的情况下,移动的顺序为:源柱子 -> 辅助柱子 ->目标柱子;2.2 偶数个圆盘的情况下,移动的顺序为:源柱子 -> 目标柱子 ->辅助柱子 -> 目标柱子。
小学校本课程_校本课程《汉诺塔游戏》教学设计学情分析教材分析课后反思
《汉诺塔游戏》教学设计学习内容:数学游戏“汉诺塔”第一课时学习目标:1.了解汉诺塔游戏的传说以及汉诺塔游戏的基本规则。
2.经历汉诺塔游戏的游玩过程,在“玩”中掌握汉诺塔游戏的基本规则,初步发现游戏中的规律。
3.在收集信息、整理归纳、猜测验证的数学思维过程,发展归纳推理能力和逻辑思维能力。
4.在解决问题的过程中,体会与他人合作获得更多的成功体验。
学习重点:经历汉诺塔游戏的游玩过程,在“玩”中掌握汉诺塔游戏的基本规则,初步发现游戏中的规律。
学习难点:在收集信息、整理归纳、猜测验证的数学思维过程,发展归纳推理能力和逻辑思维能力。
学习过程:课前活动大家喜欢玩游戏么?玩过什么游戏?我为大家带来一位游戏高手,一起来认识一下。
播放录像。
这只黑猩猩聪明吧?它的表现太神奇了!你知道它玩的什么?板书课题:汉诺塔接下来,就让我们一起步入汉诺塔游戏的世界。
一、认识汉诺塔1.关于汉诺塔,你想了解些什么?(规则,来历,玩法……)同学们的问题太棒了!相信上完了这节课,能解决你的许多问题!咱们就从汉诺塔的来历说起。
Ppt播放相关介绍。
2.认识汉诺塔各部分。
到了现代,汉诺塔演变成了这个样子。
出示教具。
咱们一起来认识一下汉诺塔:下面是一个托盘,上面竖着3根柱子,从左到右依次为A柱、B柱、C柱。
A柱是起始柱,游戏开始的时候所有的圆片摆放的位置; C柱是目标柱,游戏结束时,所有的金片都按照顺序排列在上面;B柱是中转柱。
3.了解游戏规则。
大家想不想看一看,老师玩汉诺塔游戏的录像?请你一边看一边想:汉诺塔游戏的规则是什么?出示录像。
谁来说一说,汉诺塔游戏的规则是什么?(1)从一边到另一边板书:1.从A到C (2)一次只能移动一个金片板书:2.一次一片(3)大金片不能放到小金片的上面板书:3.大不压小二、动手实践玩游戏知道了规则,接下来,咱们就开始玩汉诺塔的游戏吧。
1.咱们从1个圆片开始研究。
请你拿出学具,在A柱上摆放1个圆片。
其它圆片放在旁边桌上。
汉诺塔问题解决及游戏方案
汉诺塔问题的解决及游戏设计班级:数学与应用数学0901姓名:何文坤黄骏指导老师:王玉英随着时代的不断发展进步,计算机已经融入我们的日常生活。
很多时候,很多的问题想通过人的手来亲自解决已变得十分困难了,这时我们就要运用计算机来帮我们解决这些复杂的问题。
汉诺塔问题就是这类较复杂的问题。
汉诺塔游戏规则:有三根针A,B,C。
A针上有n个盘子,盘子大小不等,大的在下,小的在上。
要求把这n个盘子移到C针,在移动过程中可以借助B针,每次只允许移动一个盘子,且在移动过程中在三根针上的盘子都保持大盘在下,小盘在上。
此次,我们通过VisualC++软件运用递归算法来解决汉诺塔问题。
程序运行后会出现一个界面,界面上有各种操作提示,按照提示进行各种操作后会得到汉诺塔游戏的运行过程及结果。
关键词:汉诺塔;Visual C++;递归算法;问题描述------------------------------------------------------------------------------1开发平台------------------------------------------------------------------------------2变量命名规则------------------------------------------------------------------------3程序中主要类或函数的描述------------------------------------------------------4程序流程-----------------------------------------------------------------------------------------6设计难点及难点处理---------------------------------------------------------------7运行结果及结果分析---------------------------------------------------------------8程序需要完善的地方---------------------------------------------------------------10自己的心得体会---------------------------------------------------------------------11一、问题描述汉诺塔<又称河内塔)问题是起源于印度的一个古老的传说。
汉诺塔问题递归算法分析
汉诺塔问题递归算法分析汉诺塔问题递归算法分析:<spanstyle="font-size:12.0pt;font-family:宋体;mso-ascii-font-family:"Times NewRoman";mso-hansi-font-family:"Times New Roman";mso-bidi-font-family:"Times NewRoman";color:#009900;mso-ansi-language:EN-US;mso-fareast-language:ZH-CN;mso-bidi-language:AR-SA">递归实现了某种类型的螺旋状while<spanstyle="font-size:12.0pt;font-family:宋体;mso-ascii-font-family: "Times New Roman";mso-hansi-font-family:"Times New Roman";mso-bidi-font-family:"Times NewRoman";color:#009900;mso-ansi-language:EN-US;mso-fareast-language:ZH-CN;mso-bidi-language:AR-SA">循环。
while<spanstyle="font-size:12.0pt;font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times NewRoman";mso-bidi-font-family:"Times New Roman";color:#009900;mso-ansi-language:EN-US;mso-fareast-languageAR-SA">循环在循环体每次执行时必须取得某种进展,逐步迫近循环终止条件。
汉诺塔算法
汉诺塔算法一、介绍汉诺塔(Hanoi Tower)是一种经典的数学问题和递归算法,来源于一个古老的传说。
传说中有三根柱子,其中一根柱子上叠着从小到大的圆盘,目标是将所有的圆盘从起始柱子移动到目标柱子,同时尽量遵守以下规则:1. 每次只能移动一个圆盘;2. 只能移动更小的圆盘到更大的圆盘上;3. 在三根柱子之间移动圆盘时,可以使用中间柱子辅助。
二、算法步骤下面是汉诺塔算法的基本步骤:1. 如果只有一个圆盘,直接将它从起始柱子移动到目标柱子;2. 如果有多个圆盘,将上面的 n-1 个圆盘从起始柱子移动到中间柱子,借助目标柱子作为辅助;3. 将最底下的一个圆盘从起始柱子移动到目标柱子;4. 将 n-1 个圆盘从中间柱子移动到目标柱子,借助起始柱子作为辅助。
三、递归解法1. 编写递归函数 hanoi,接收起始柱子、目标柱子和圆盘数量为参数;2. 在 hanoi 函数中:- 如果圆盘数量为 1,直接将起始柱子上的圆盘移动到目标柱子上,算法结束;- 否则,- 通过递归调用 hanoi 函数将 n-1 个圆盘从起始柱子移动到中间柱子,借助目标柱子作为辅助;- 将最底下的一个圆盘从起始柱子移动到目标柱子;- 通过递归调用 hanoi 函数将 n-1 个圆盘从中间柱子移动到目标柱子,借助起始柱子作为辅助。
四、实现示例(Python代码)以下是一个简单的示例,用 Python 语言实现汉诺塔算法:```pythondef hanoi(start, target, n):if n == 1:print('Move disk from rod', start, 'to rod', target)else:helper = 6 - start - targethanoi(start, helper, n - 1)print('Move disk from rod', start, 'to rod', target)hanoi(helper, target, n - 1)n = int(input('Enter the number of disks: '))hanoi(1, 3, n)```五、运行示例在上述示例中,我们通过调用 hanoi 函数来演示汉诺塔算法。
从汉诺塔问题看递推关系在实际问题中的应用
从汉诺塔问题看递推关系在实际问题中的应用姓名:孙瑞 学号: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)市场经济中的蛛网模型经济背景与问题:在自由竞争的市场经济中,商品的价格是由市场上该商品的供应量决定的,供应量越大,价格就越低。
汉诺(Hanoi)塔问题(C#版)
汉诺(Hanoi)塔问题(C#版)
⼀个只能⽤递归解决的数学问题;问题描述:古代有⼀个梵塔,塔内有3个座,A、B、C,开始时A座有64个盘,盘⼦⼤⼩不等,⼤的在上,⼩的在下。
有⼀个⽼和尚想把这64个盘⼦从A座移到C座(如图所⽰),但每次只允许移动⼀个盘,且在移动过程中在3个座上始终保持⼤盘在下,⼩盘在上。
在移动地程中可以⾏⽤B座,要求编程序打印出移动的步骤。
逆向推理:1.假如⼀个和尚能把上⾯63个盘⼦先搬到B座,第⼆个和尚再把最⼤的那个移到C,第三个和尚再把63个盘⼦移到C座;⾄此整个⼯作就完成的。
2.问题是怎么才能把63个盘⼦移到B座,按照同样的⽅法,先把62个盘⼦选移到C座
,再把第63个盘⼦移到B座,最后再将62个盘⼦移到B座。
3……如此类推;
4.从上⾯分析可以看出:只有等后⾯那个和尚搬完盘⼦,前⾯的和尚才能够去完成任。
让我们来栈的数据结构:数据的处理只在⼀端处理,且是先进后出。
所以⽤递归的⽅法去处理是正确的。
(汉诺塔图)
汉诺塔问题解决⽅案
如果你发现有什么错误之处,请指出!谢谢了。
汉诺塔中的数学知识
汉诺塔中的数学知识
洪联平
【期刊名称】《数理天地:初中版》
【年(卷),期】2012(000)010
【摘要】在贝那勒斯(佛教圣地,位于印度北部)的圣庙里,安放着一个黄铜板,板上插着三根金刚石针(如图).传说开天辟地的神梵天(印度教主神)在创造世界的时候,在其中的一根针上从下到上放置了由大到小的64片金片,这就是所谓的汉诺塔.
【总页数】1页(P9-9)
【作者】洪联平
【作者单位】四川省会理县绿水中学,615148
【正文语种】中文
【中图分类】G633.7
【相关文献】
1.从汉诺塔的故事中领悟到的递推数列通项的求法
2.从汉诺塔的故事中领悟到的递推数列通项的求法
3.AS3中实现汉诺塔问题递归算法动画显示
4.二叉树中序遍历
在汉诺塔递归算法教学中的应用5.整合数学知识促进科学教学——浅谈数学知识在初中科学教学中的整合应用
因版权原因,仅展示原文概要,查看原文内容请购买。
汉诺塔问题
汉诺塔百科名片汉诺塔初始状态汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。
上帝创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上安大小顺序摞着64片黄金圆盘。
上帝命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。
并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
目录由来汉诺塔与宇宙寿命concreteHAM:汉诺塔问题的程序实现由来汉诺塔与宇宙寿命concreteHAM:汉诺塔问题的程序实现展开编辑本段由来来源汉诺塔是源自印度神话里的玩具。
上帝创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按大小顺序摞着64片黄金圆盘。
上帝命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。
并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
传说在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。
印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。
不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。
僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。
不管这个传说的可信度有多大,如果考虑一下把64片金片,由一根针上移到另一根针上,并且始终保持上小下大的顺序。
这需要多少次移动呢?这里需要递归的方法。
假设有n片,移动次数是f(n).显然f(1)=1,f(2)=3,f(3)=7,且f(k+1)=2*f(k)+1。
此后不难证明f(n)=2^n-1。
n=64时,f(64)= 2^64-1=18446744073709551615假如每秒钟一次,共需多长时间呢?一个平年365天有31536000 秒,闰年366天有31622400秒,平均每年31556952秒,计算一下,18446744073709551615/31556952=584554049253.855年这表明移完这些金片需要5845亿年以上,而地球存在至今不过45亿年,太阳系的预期寿命据说也就是数百亿年。
汉诺塔论文——精选推荐
汉诺塔论⽂⽬录⽬录 (1)摘要 (2)⼀、背景知识 (3)⼆、问题重述 (3)三、算法分析 (3)四、流程及程序设计 (5)(1)、流程图 (5)(2)、模块及其功能介绍 (6)五、调试与算法复杂度分析 (7)(1)、运⾏结果 (7)(2)、H ANOI塔问题复杂度分析 (9)总结 (10)参考⽂献 (11)附录 (12)摘要汉诺威塔是⼀款集娱乐与运算的智⼒游戏,它不仅能使⼈在休闲的时候放松⼼情,⽽且还能在玩的过程中不断的提⾼你的思维能⼒。
有三个柱⼦A, B, C。
A柱⼦上叠放有n个盘⼦,每个盘⼦都⽐它下⾯的盘⼦要⼩⼀点,可以从上到下⽤1, 2, ..., n编号。
要求借助柱⼦C,把柱⼦A上的所有的盘⼦移动到柱⼦B上。
移动条件为:1、⼀次只能移⼀个盘⼦2、移动过程中⼤盘⼦不能放在⼩盘⼦上,只能⼩盘⼦放在⼤盘⼦上本⽂的主要算法是利⽤函数的递归调⽤算法。
⾸先,想办法将A座上的前n-1个盘借助C座移动到B座上,然后将A组上的第n个盘移动到C座上。
然后再将B座上的n-1个盘借助A座移动到C座上,此次移动也和第⼀次移动⼀样,重复递归,直到最后⼀个盘为⽌。
关键词:汉诺塔递归思想函数调⽤数组指针⼀、背景知识汉诺塔(⼜称河内塔)问题来⾃中东地区⼀个古⽼的传说:在世界刚被创建的时候有⼀座钻⽯宝塔(塔A),其上有64个⾦碟。
所有碟⼦按从⼤到⼩的次序从塔底堆放⾄塔顶。
紧挨着这座塔有另外两个钻⽯宝塔(塔B和塔C)。
从世界创始之⽇起,婆罗门的牧师们就⼀直在试图把塔A上的碟⼦移动到塔C上去,其间借助于塔B 的帮助。
每次只能移动⼀个碟⼦,任何时候都不能把⼀个碟⼦放在⽐它⼩的碟⼦上⾯。
当牧师们完成任务时,世界末⽇也就到了。
19世纪的法国⼤数学家鲁卡曾经研究过这个问题,他正确地指出,要完成这个任务,僧侣们搬动⾦盘的总次数(把1个⾦盘从某个塔柱转移到另1个塔柱叫做1次)为:18,446,744,073,709,551,615次。
假设僧侣们个个⾝强⼒壮,每天24⼩时不知疲倦地不停⼯作,⽽且动作敏捷快速,1秒钟就能移动1个⾦盘,那么,完成这个任务也得花5800亿年!⼆、问题重述有三个柱⼦A, B, C。
汉诺塔的计算原理及应用
汉诺塔的计算原理及应用
汉诺塔问题简介
汉诺塔问题是一个经典的数学问题,它源于印度一个古老的传说。
问题的规则
很简单:给定三个柱子(编号为A、B和C),在柱子A上有一些不同大小的圆盘,按照从上到下逐渐变大的顺序堆叠在柱子上。
目标是将所有的圆盘移动到柱子C
上,移动过程中可以借助柱子B。
汉诺塔问题的计算原理
汉诺塔问题的计算原理可以通过递归实现。
对于N个圆盘的汉诺塔问题,可以将其分解为三个子问题:将N-1个圆盘从柱子A移动到柱子B,将第N个圆盘从
柱子A移动到柱子C,再将N-1个圆盘从柱子B移动到柱子C。
这样就将问题分
解为规模较小的子问题,可以通过递归解决。
下面是汉诺塔问题的计算原理示例代码:
```python def hanoi(n, source, target, auxiliary): if n > 0: # 将 n-1 个圆盘从源柱
子移动到辅助柱子 hanoi(n-1, source, auxiliary, target)
# 将第 n 个圆盘从源柱子移动到目标柱子
print(\。
汉诺塔问题算法描述
汉诺塔问题算法描述汉诺塔问题是一个经典的递归问题,其背后的算法思想可以推广到许多其他领域。
该问题的基本形式是:有三根柱子,A、B、C,A 柱子上有 n 个盘子,盘子大小不一,要将它们移到 C 柱子上,移动过程中可以借助 B 柱子,盘子移动时必须遵循以下规则:1. 每次只能移动一个盘子;2. 盘子可以放置在空柱子或比它大的盘子上;3. 盘子不能放置在比它小的盘子上。
汉诺塔问题是一个典型的递归问题,通过扩展汉诺塔问题的规模,可以引出更加深刻的递归思想和算法。
下面对汉诺塔问题的算法描述进行详细解释:1. 求解汉诺塔问题的递归算法求解汉诺塔问题的递归算法由三个部分组成:(1)将上面的 n-1 个盘子移动到 B 柱子上;(2)将最底下的一个盘子从 A 柱子移动到 C 柱子上;(3)将 B 柱子上的 n-1 个盘子移动到 C 柱子上。
基于以上三步,我们可以得到汉诺塔问题的递归算法:def hanoi(n, p1, p2, p3): if n == 1: print(p1, "->", p3) else: hanoi(n - 1,p1, p3, p2) print(p1, "->", p3) hanoi(n - 1, p2, p1, p3)该算法的时间复杂度为 O(2^n),由于需要移动 2^n-1 次,因此对于较大的 n 值,计算时间会非常长。
2. 求解汉诺塔问题的非递归算法上面提到的递归算法,虽然精简高效,但是对于大规模数据求解效率会很低。
而非递归算法,一般具有更好的时间复杂度、更低的计算成本。
接下来我们介绍如何通过栈数据结构来实现汉诺塔问题的非递归算法:(1)我们可以将每个子问题看作一个状态,用一个元组 (n, p1, p2, p3) 来表示状态,其中 n 表示当前状态还有多少个盘子需要移动,p1、p2、p3 分别表示 A、B、C 三个柱子的状态。
(2)我们将状态元组压入栈中,每次取出栈顶元组进行处理。
汉诺塔论文
摘要:长期以来,人们只熟悉汉诺塔问题的递归算法。
这里我们采用非递归算法解决这个问题,没用到栈和二叉树。
关键字:改变表现,递推关系,时间(空间)复杂度汉诺塔问题:有大小不同的n个盘子和三个柱子。
一开始的时候,所有的盘子都按照大小顺序套在第一根柱子上,最大的盘子在底部,最小的盘子在顶部。
目的是把所有的盘子都移动到第三根柱子上去,在必要的时候可以借助第二根柱子。
我们每次只能移动一个盘子,但不能把较大的盘子放在较小的盘子上面。
我们都知道这个问题的递归算法。
由递归算法我们可以得到递推关系:M(n)=2M(n-1)+1 当n>1时M(n)=1 当n=1时这里的M(n)代表n个盘子所需移动的次数。
我们用反向替换法可以得到:M(n)=2M(n-1)+1=2[2M(n-2)+1]+1=22M(n-2)+2+1=22[M(n-3)+1]+2+1=22M(n-3)+22+2+1经过i次替换后:M(n)=2i M(n-i)+2i-1+2i-2+……+2+1=2i M(n-i)+2i-1因为初始条件是在n=1时确立的,所以令i=n-1,则M(n)=2n-1M(n-(n-1))+2n-1-1=2n-1M(1)+2n-1-1=2n-1因此我们知道对于问题规模为n的问题,时间效率最好为Θ(2n),即我们所得的算法最好也是指数级的。
若用递归会更低效,但我们必须承认递归简洁,易懂。
我们现在手工模拟一下当n=5时的情况。
设源柱子为A,辅助柱子为B,目标柱子我们分析这个表,找到其规律就可以解决汉诺塔问题。
我们称这种方法为“改变表现”。
所谓“改变表现”是指一个问题实例的表现改变为同样实例的另一种表现,它是变治思想的一种类型。
从上面的移动过程中就很容易发现其规律。
我们将上述过程四个分为一组,每一组的前三步移动循环出现且固定不变,而只有每一组中第四步移动改变。
(这个规律只适用于当n为奇数的时候)。
分析:我们用count表示移动的次数,初值为1;当n=1时,A→C。
高中信息奥赛-五种典型的递推关系
3、平面分割 同一平面内有n(n≤500)条直线,已知其中p(p≥2)条直线相交于同一点,
则这n条直线最多能将平面分割成多少个不同的区域? 【输入格式】 两个整数n(n≤500)和p(2≤p≤n)。 【输出格式】 一个正整数,代表最多分割成的区域数目。 【输入样例】Surface.in
12 5 【输出样例】Surface.out
7、过河卒(NOIP2002)
【问题描述】 棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或
者向右。同时在棋盘上的任一点有一个对方的马(如C点),该马所在的点和所 有跳跃一步可达的点称为对方马的控制点(如图中的C点和P1,P2,……, P8)。卒不能通过对方马的控制点。棋盘用坐标表示,A点(0,0)、B点(n, m) (n,m为不超过20的整数),同样马的位置坐标是需要给出的,C≠A且C≠B。现在输 入B点坐标和C点的坐标,要你计算出卒从A点能够到达B点的路径的条数。
平面分割问题是竞赛中经常触及到的 一类问题,由于其灵活多变,常常感到棘手,下 面的【例7】是另一种平面分割问题,有兴趣的读 者不妨自己先试着求一下其中的递推关系。
Ⅳ.Catalan数
Catalan数首先是由Euler在精确计算对凸n边形的不同 的对角三角形剖分的个数问题时得到的,它经常出现在组合 计数问题中。
到标号大的相邻蜂房,现在问你:蜜蜂从蜂房M开始爬到蜂房N,M<N,有 多少种爬行路线?
【输入格式】 输入M,N的值。 【输出格式】 爬行有多少种路线。 【输入样例】bee.in
1 14 【输出样例】bee.out
377
6、数塔问题
【问题描述】 设有一个三角形的数塔,顶点为根结点,每个结点有一个整数值。从顶点出
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
从汉诺塔问题看递推关系在实际问题中的应用姓名:孙瑞 学号: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)市场经济中的蛛网模型经济背景与问题:在自由竞争的市场经济中,商品的价格是由市场上该商品的供应量决定的,供应量越大,价格就越低。