演示文稿河内塔问题3
- 格式:ppt
- 大小:475.00 KB
- 文档页数:19
小学数学讲题稿河内塔问题浏阳市新文学校周小芬大家上午好,今天我的讲题内容是河内塔问题。
如图所示:有编号为1、2、3号的三根杆子,在1号杆上有呈金字塔状排列的三颗珠子,你能借助2号把1号杆上的珠子移到3号杆而不改变珠子的上下顺序吗?最少移动多少次?移动规则如下:(1)每次只能移动一颗珠子;(2)大珠子不能放到小珠子上面。
如果A杆上有4个珠子呢?至少移动多少次?一、题目分析河内塔问题源于印度的一个神话,本题动手操作性和综合性强,学生不容易根据题目中的已知条件和问题,找到解题方法。
因此我的教学思路是:1.认真分析题目条件和要求。
2.让学生边操作边思考,并做好记录,逐步总结出规律和方法。
3.一题多解,发散思,拓展延伸。
在学生动手操作之前,先强调操作的要求:1、不改变上下顺序;2、保证移动次数的最少;3、隐藏的已知条件是:1、2、3号杆都可以作为珠子的临时中转杆;约束条件是:中转杆上的珠子必须保持金字塔状。
二、由学生容易进入的误区探究出珠子移动次数最少的规律(题目的已知条件中要求借助2号杆,那么学生很容易理解成只能用2号杆作为中转,所以会在每次移动时先将最上面的那颗最小的珠子移入2号杆,但是,这样移动,能保证是最少的移动次数吗?)给学生足够的操作探究的时间,让不同层次的学生尝试用自己的方法去解决这个问题。
全班交流,会出现大致以下情况:1、每次都先将最小珠移至2号杆,导致部移动次数不都是最少。
2、有学生举棋不定,无从入手。
3、有学生会将珠子在三根杆上来回移动,重复多次。
4、有学生将珠子移入中转杆时,顺序颠倒。
5、有学生会总结出最少移动次数的操作方法。
6、其他。
比较结果,得出最优策略,结果如下:结果如下探究出珠子移动次数最少的规律:1、1号杆珠子为单数,最小珠先移入3号杆中转2、1号杆珠子为双数,最小珠先移入2号杆中转三、发现规律,拓展升华根据所得出的结果找出河内塔问题的最终规律:利用递推法,根据前一项和后一项珠子移动的最少次数,递推出它的规律是:后一项珠子移动次数是前一项的2倍多1;根据珠子移动的最少次数,发现它组成了一个规律为2的n次方减1的数列。
河内塔研究报告河内塔是一种经典的数学益智游戏,由于其简单而有趣的规则,已经成为了许多人喜爱的智力挑战。
本次研究报告旨在对河内塔进行深入研究和分析,并探讨其数学原理和解法。
首先,我们来了解河内塔的规则。
游戏中有三个柱子,分别称为A、B和C。
开始时,柱子A上有若干个盘子,这些盘子按照从小到大的顺序叠放。
目标是将所有的盘子从柱子A移动到柱子C上,期间可以借助柱子B进行中转,但有以下限制:1. 每次只能移动一个盘子;2. 移动过程中,大盘子不能放在小盘子上面。
这是一个递归问题,可以通过递归函数来解决。
下面介绍一种基本的解法思路:1. 对于只有一个盘子的情况,直接将盘子从柱子A移动到柱子C;2. 对于有两个或更多盘子的情况,可以分为三个步骤:a. 将上面的 n-1 个盘子从柱子 A 移动到柱子 B;b. 将最大的盘子从柱子 A 移动到柱子 C;c. 将之前移动到柱子 B 上的 n-1 个盘子移动到柱子 C。
通过递归调用这个过程,即可完成整个河内塔的移动。
除了递归解法,还可以使用其他方法来解决河内塔问题。
例如,可以使用栈来模拟游戏过程:首先将所有待移动的盘子按从大到小的顺序依次入栈,然后进行循环操作:- 如果栈非空,判断当前栈顶盘子能否移动到目标柱子,如果可以则移动并输出移动步骤,同时将盘子出栈;- 否则,进行下一次循环。
通过不断出栈和移动操作,最终可以将所有盘子从柱子A移动到柱子C。
以上是河内塔的基本解法和思路,通过研究和分析,我们可以发现河内塔具有一定的数学规律和模式。
在移动过程中,每次移动都是在不同柱子之间进行,即从A到C,或从A到B再到C,或从C到A再到B再到C。
这涉及到了数列的求和操作,每次移动的步数可以表示为2^n-1,其中n 是盘子的个数。
在实际应用中,河内塔还有一些变种,比如增加了移动次数限制、增加了盘子的数量等。
通过对河内塔的深入研究和理解,我们不仅可以锻炼自己的数学思维能力,还可以运用河内塔的原理和解法来解决其他类似的问题。
河内塔游戏活动目标:1.本活动以河内塔做为媒介,从“玩”入手,让学生在“玩”的过程中,体会最佳策略,初步感受递推法解决实际问题的方法。
2.能用有条理的、清晰的语言阐述自己的想法,学会用简单的方式记录活动过程3.培养学生的观察、分析、比较,综合思考能力。
活动材料:河内塔玩具、活动单活动过程:活动一:(初步感知尝试把玩)1.师:出示河内塔玩具谈话:今天老师给大家带来了一个玩具,见过吗?你知道这个玩具叫什么吗?课题:“河内塔”想知道这个玩具怎么玩吗?2.(课件出示游戏玩法)任务:将一根柱上的圆盘全部移动到另一根柱上。
规则:1.每次只能移动一个盘子,只能在3个柱子之间移动;2.移动过程中,小盘子一定要放在大盘子的上面,不可颠倒;3.读一读,问:谁看懂了游戏规则,和大家说一说。
4.在学生介绍的基础上老师结合操作介绍游戏规则问:你想玩吗?那我们也来玩一玩。
老师给你3分钟时间,请边玩边注意这个游戏的规则。
(完好后把盘放回信封)5.你知道吗,很多的数学家都研究过这个游戏。
关于它还有一个古老传说,想不想听听。
传说印度教的主神梵天在创造世界的时候,在一块黄铜板上插着三根宝石针,并且在其中一根针上从下到上地穿好了由大到小的64片金片,不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。
僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声巨响中灭亡……师:传说中的河内塔上只有64个盘子,按照上面的规则移动完成后,我们的世界怎么可能灭亡呢?这中间究竟蕴含了什么样的奥秘呢?今天我们也来研究一下河内塔,揭开这个古老传说中的奥秘吧。
这个河内塔上有64个金环,要是直接移动是不是有些麻烦,那你想从几个开始?7.在学生回答的基础上小结:对于复杂的问题,我们可以从它最简单的形式开始研究,在研究的过程中找到规律就好办了。
活动二:一盘游戏(学生说一说,教师简单演示过程)活动三:二盘游戏1.学生分组活动,两人一组轮流玩。
由来法国数学家爱德华·卢卡斯曾编写过一个印度的古老传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。
印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。
不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。
僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。
[2]不管这个传说的可信度有多大,如果考虑一下把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时,假如每秒钟一次,共需多长时间呢?一个平年365天有31536000 秒,闰年366天有31622400秒,平均每年31556952秒,计算一下:18446744073709551615秒这表明移完这些金片需要5845.54亿年以上,而地球存在至今不过45亿年,太阳系的预期寿命据说也就是数百亿年。
真的过了5845.54亿年,不说太阳系和银河系,至少地球上的一切生命,连同梵塔、庙宇等,都早已经灰飞烟灭。
印度传说和汉诺塔故事相似的,还有另外一个印度传说:舍罕王打算奖赏国际象棋的发明人──宰相西萨·班·达依尔。
国王问他想要什么,他对国王说:“陛下,请您在这张棋盘的第1个小格里赏给我一粒麦子,在第2个小格里给2粒,第3个小格给4粒,以后每一小格都比前一小格加一倍。
请您把这样摆满棋盘上所有64格的麦粒,都赏给您的仆人吧!”国王觉得这个要求太容易满足了,就命令给他这些麦粒。
当人们把一袋一袋的麦子搬来开始计数时,国王才发现:就是把全印度甚至全世界的麦粒全拿来,也满足不了那位宰相的要求。
附件3:小课题封面格式序号2014年温州市小学数学小课题评比学校:温州市瓯海实验小学南瓯校区成员姓名:陈奥小课题题目:河内塔游戏探秘指导教师:季迅群河内塔游戏探秘一、提出问题曾经在数学书上有个叫“河内塔问题”数学游戏。
它就是由三个杆子,分别是1号杆,2号杆和3号杆,1号杆上有三颗珠子,是从小到大排列的。
这个问题引起了我的兴趣,于是,我对河内塔游戏产生了浓厚的兴趣,去查找了资料,了解到:它源自古印度神庙中的一段故事。
传说在古老的印度一座庙宇中放置了一块上面插有三根长木钉的木板,在其中的一根木钉上,从上至下被放置了64片直径由小至大的圆环形金属片。
古印度教的天神指示他的僧侣们将64片的金属片移至三根木钉中的其中一根上。
规定在每次的移动中,只能搬移一片金属片,并且在过程中必须保持金属片由上至下是直径由小至大的次序,直到有一天,僧侣们能将64片的金属片依规则从指定的木钉上全部移动至另一根木钉上,那么,世界末日即随之来到,世间的一切终将被毁灭。
二、展开探索1.探索(一)三颗珠子三根杆子的游戏三颗珠子的移动挺简单的,但要注意的是:为了做到移动次数最少,第一次移动必须把最小的珠子移动到最后一个柱子。
如果移动到第2个柱子上,虽然最后也能完成任务,但是就达不到“移动次数最少”的要求。
详细移动过程如下:第一次移动第二次移动第三次移动第四次移动第五次移动第六次移动第七次移动2.探索(二) 四颗珠子三根杆子的游戏四颗珠子能不能移呢?我尝试了几次,最下面的一颗珠子好像没有办法拿出来。
但后来灵机一动:如果把上面三颗珠子先用刚才的方法移到其他柱子上。
不就可以拿起最下面的一颗珠子了嘛!经过尝试,我发现:三颗珠子先用刚才的方法移到第2号柱子上步骤是最少的。
一共需要15次。
步骤具体如下:第一次移动第二次移动第三次移动第四次移动第五次移动第六次移动第七次移动第八次移动第九次移动第十次移动第十一次移动第十二次移动第十三次移动第十四次移动第十五次移动移动中,我发现:在这十五次里,有七次是上面的三颗珠子移到2号杆上,有一次是把最大的珠子移到3号杆上,剩下的七次是把2号杆上的三颗珠子移到3号杆上的最大珠子上面。
河内塔问题尹庄小学乔宝付教学目的:(1)学生能够初步学会用递推方法解决实际问题;(2)进一步巩固求解递推数列的方法;(3)利用“特殊化与一般化”的数学思想解决问题。
教学手段:利用学具辅助教学教学方法:问题教学法教学过程:一、听老师讲故事,谈“河内塔问题”河内塔的起源源自古印度神庙中的一个传说。
传说中开天辟地的神勃拉玛在贝拿勒斯的圣庙里留下了三根金刚石的棒,第一根上面套着64个金环,最大的一个在底下,其余的一个比一个小,依次叠上去。
庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。
相传神同时发了咒语,当所有的金环全部移完时,就是世界末日到来的时候。
那么,众僧们要移动多少次呢?不妨我们假设一下:(1)如果①号棒上只有1个金片。
把金片移到③号棒上只需要移1次;(板书:金片的片数移动的次数)1 1(2)如果①号棒上有2个金片,最少移动几次?应该怎样移?同桌商量,怎样移?找生边演示边说明。
(先把小金片移到②号棒上,再把大金片移到③号棒上,再把小金片移到③号棒上,总共需要移3次)板书:2 3(3)如果①号棒上有3个金片。
应该怎样移?移动几次?今天我们就一起来研究这个“河内塔问题”板书:河内塔问题二、做游戏出示“河内塔问题”1、河内有①号、②号、③号三个柱子,你能借助②号柱把①号柱上的珠子移到③号柱而不改变珠子的上下顺序吗?最少移动多少次?移动规则如下:(1)每次只能移动一个珠子;(2)大珠子不能放到小珠子上面。
2、让生读题,理解题意。
3、小组讨论:大、中、小三个珠子如何移?最少要移动多少次?4、小组合作开始做“河内塔”游戏5、各小组展示成果。
找出用时最短且移动次数最少的组为优胜组。
6、教师展示移动过程,并用图解说明。
(1)河内塔问题,三个珠子的移动图解:三个珠子的移动只有两种移动方法:如果第一次移动时,把最小红珠子放到③号杆上是优选法。
Hanoi塔问题Hanoi塔问题是法国数学家Edouard Lucas于1883年提出来的。
传说有一个东方庙宇(一说为印度,一说为越南)开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为过渡,但每次只能搬一个,而且大的不能放在小的上面。
移动圆片的总次数等于2的64次方再减1=18446744073709551615,如果按照最快每秒钟搬动1片的话,就算昼夜不停地干,要花多少时间?1年有365x24x60x60=31536000秒。
所以共需5849亿年!看来,众僧们耗尽毕生精力也不可能完成金片的移动。
这个问题今天已经成为程序设计中的经典的函数递归调用问题。
此外,还有Hanoi塔电子游戏。
一、需求分析⒈本实验要求4个盘子移动,输出中间结果:三个盘子的图为:三个盘子汉诺塔算法的运行轨迹为:Hanio 算法如下:1 void Hanoi (int n, char A, char B, char C ) //第一列为语句行号2 {3 if (n==1) Move (A, C ); //Move 是一个抽象操作,表示将碟子从A 移到C 上4 else {5 Hanoi (n -1, A, C, B );6 Move (A, C );7 Hanoi (n -1, B, A, C );8 }9 }解释:三根柱子x,y,z.其中x 上有n 个直径递增的圆盘(最顶为最小,然后往下一次增大),现在要把x 上的n 个圆盘移到z 上,要求在移动的过程中不允许出现任何大的圆盘叠放在任何小的圆盘上,柱y 可作中转用).如果柱x 上只有一个圆盘 if(n==1),那么只需要将x 上的这一个圆盘移到z 上即可.程序中的 printf("%c-->%c\n",x,z); 就是把移动的方向打印出来显示在屏幕上.否则(即柱上X 上有不止一个圆盘)else { move(n-1,x,z,y); printf("%c-->%c\n",x,z); move(n-1,y,x,z); }我们先把柱x 上 最上面的(n-1)个圆盘移到柱y(记住柱y 本来就是作中转用的) 上(先不要去深究这n-1个圆盘怎么移得到柱y 上,假设能办到), move(n-1,x,z,y); 注 意此时我们的x,y,z 的角色变了.我们要从x 上移动圆盘到y 上了.你不妨这样标记一 下move 形参 move(圆盘数,来源柱,中转柱,目标柱).就是说现在x 的角色是来源柱,y 的角色是目标柱,我们要把x 上的n-1个圆盘移到y 上.⑸ ⑼ ⑶ Hanio(3,A,B,C) Hanio(3,A,B,C) Hanio(2,A,C,B) Hanio(2,A,C,B) Hanio(1,A,B,C) Hanio(1,A,B,C) Move (A,C) Move (A,B) Hanio(1,C,A,B) Hanio(1,C,A,B) Move (C,B) Move (A,B)Hanio(2,B,A,C) Hanio(2,B,A,C) Hanio(1,B,C,A) Hanio(1,B,C,A) Move (B,C) Hanio(1,A,B,C) Hanio(1,A,B,C) Move (A,C) Move (B,A) 递归第一层 递归第二层 递归第三层 ⑴ ⑵ ⑷⑹ ⑺ ⑻ ⑽⑾ ⑿ ⒀ ⒁这一步完成之后,我们就该把剩在柱x上的那个最大的圆盘移到柱z上了.printf("%c-->%c\n",x,z);现在我们的状态是最大的圆盘已经在z上,其余的n-1个在y上,x上没有圆盘.我们在交换一下x,y,z的角色: move(n-1,y,x,z); 对照move(圆盘数,来源柱,中转柱,目标柱), 我们要把y上剩余的n-1个圆盘移到z上. 自此,n个圆盘全都从x上移到了z上.以此类推,四个盘子的Hanoi塔的问题也是如此解决。