河内塔游戏
汉诺游戏规则如下:
1、有三根相邻的柱子,标号为A,B,C。
2、A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘。
3、现在把所有盘子一个一个移动到柱子B上,并且每次移动同一根柱子上都不能出现大盘子在小盘子上方。
其实汉诺塔只要掌握规律,多少层都是一样的。
最重要的是第一块放在哪儿,单数层的汉诺塔一定要放在第三柱,双数层的要放在第二柱。
如果你会六层的汉诺塔,(将第一块放在第三柱),将六块都移到第二柱,最后一块移到第三柱,
再如前法将上面六块都移到第三柱。
扩展资料:
汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。
大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。
并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
汉诺塔百度百科
游戏里有三根金刚石柱子,在一根柱子上从下往上安大小顺序摞着64片黄金圆盘。玩家需要做的是把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
有三根杆子A,B,C。A杆上有N个(N>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至C杆:
1. 每次只能移动一个圆盘;
2. 大盘不能叠在小盘上面。
提示:可将圆盘临时置于B杆,也可将从A杆移出的圆盘重新移回A杆,但都必须尊循上述两条规则。
问:如何移?最少要移动多少次?
一般取N=64。这样,最少需移动264-1次。即如果一秒钟能移动一块圆盘,仍将需5845.54亿年。目前按照宇宙大爆炸理论的推测,宇宙的年龄仅为137亿年。
在真实玩具中,一般N=8;这将需移动255次。如果N=10,需移动1023次。如果N=15,需移动32767次;这就是说,如果一个人从3岁到99岁,每天移动一块圆盘,他仅能移动15块。如果N=20,需移动1048575次,即超过了一百万次。
先看hanoi(1, one, two, three)的情况。这时直接将one柱上的一个盘子搬到three柱上。注意,这里one柱或three柱到底是A、B还是C并不重要,要记住的是函数第二个参数代表的柱上的一个盘被搬到第四个参数代表的柱上。为方便,将这个动作记为:
one =》three
再看hanoi(2, one, two, three)的情况。考虑到hanoi(1)的情况已经分析过了,可知这时实际上将产生三个动作,分别是:
one =》two
one =》three
two =》three
很显然,这实际上相当于将one柱上的两个盘直接搬到three柱上。
再看hanoi(3, one, two, three)的情况。分析
hanoi(2, one , three, two)
one =》three
hanoi(2, two, one, three)
即:先将one柱上的两个盘搬到two柱上,再将one柱上的一个盘搬到three柱上,最后再将two柱上的两个盘搬到three柱上。这不就等于将one柱上的三个盘直接搬到three柱上吗?
运用归纳法可知,对任意n,
hanoi(n-1, one , three, two)
one =》three
hanoi(n-1, two, one, three)
就是先将one柱上的n-1个盘搬到two柱上,再将one柱上的一个盘搬到three柱上,最后再将two柱上的n-1个盘搬到three柱上。这就是我们所需要的结果!
回答者:wuchenghua121 - 经理 四级 12-5 11:51
汉诺塔
汉诺塔(又称河内塔)问题是印度的一个古老的传说。开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。解答结果请自己运行计算,程序见尾部。面对庞大的数字(移动圆片的次数)18446744073709551615,看来,众僧们耗尽毕生精力也不可能完成金片的移动。
后来,这个传说就演变为汉诺塔游戏:
1.有三根杆子A,B,C。A杆上有若干碟子
2.每次移动一块碟子,小的只能叠在大的上面
3.把所有碟子从A杆全部移到C杆上
经过研究发现,汉诺塔的破解很简单,就是按照移动规则向一个方向移动金片:
如3阶汉诺塔的移动:A→C,A→B,C→B,A→C,B→A,B→C,A→C
此外,汉诺塔问题也是程序设计中的经典递归问题。
补充:汉诺塔的算法实现(c++)
#include <fstream>
#include <iostream>
using namespace std;
ofstream fout("out.txt");
void Move(int n,char x,char y)
{
fout<<"把"<<n<<"号从"<<x<<"挪动到"<<y<<endl;
}
void Hannoi(int n,char a,char b,char c)
{
if(n==1)
Move(1,a,c);
else
{
Hannoi(n-1,a,c,b);
Move(n,a,c);
Hannoi(n-1,b,a,c);
}
}
int main()
{
fout<<"以下是7层汉诺塔的解法:"<<endl;
Hannoi(7,'a','b','c');
fout.close();
cout<<"输出完毕!"<<endl;
return 0;
}
C语言精简算法
/* Copyrighter by SS7E */
#include<stdio.h> /* Copyrighter by SS7E */
void hanoi(int n,char A,char B,char C) /* Copyrighter by SS7E */
{
if(n==1)
{
printf("Move disk %d from %c to %c\n",n,A,C);
}
else
{
hanoi(n-1,A,C,B); /* Copyrighter by SS7E */
printf("Move disk %d from %c to %c\n",n,A,C);
hanoi(n-1,B,A,C); /* Copyrighter by SS7E */
}
}
main() /* Copyrighter by SS7E */
{
int n;
printf("请输入数字n以解决n阶汉诺塔问题:\n");
scanf("%d",&n);
hanoi(n,'A','B','C');
}/* Copyrighter by SS7E */
回答者: Vanquisher_ - 举人 五级 12-5 13:57
parcel::::::::::
program hanoi;
functionhanoi(x:integer):longint;
begin
if x=1 then hanoi:=1;
if x=2 then hanoi:=3;
else
begin
hanoi:=2*hanoi(x-1)+1;
end;
end;
begin
read(x){第几个数 }
write(hanoi(x));
end.
思想就是:第N个就等于第n-1个乘以2+1次
解:
设圆盘个数为N,则最少需要用An步完成.
可见,这是一道关于数列的题目:
则:
A1=1;
A2=3=2*A1+1;
A3=7=2*A2+1;
A4=15=2*A3+1;
...
所以,A(n+1)=2*An+1;
所以,An的通项公式为:
An=2^n-1(2^n就是2的n次方)
所以7个圆盘最少的步骤为:
A7=2^7-1=127(步)
问题得解.
明白了吗?不明白的话我再改.
请大神解答一下LOL外塔、2塔、内塔、和双塔有什么不同?威力和血量不同...
是的,LOL的外塔、2塔、内塔和双塔在威力和血量上有所不同。在LOL(英雄联盟)这款游戏中,防御塔是地图上的重要目标,它们为队伍提供了保护和额外的经济来源。这些防御塔分为外塔、2塔、内塔(也被称作高地塔)和双塔(两个高地塔之间的塔)。它们的主要区别在于它们的血量和攻击力,以及它们被摧毁...
这个直接内塔是什么意思
直接攻击从河道开始数第三个塔。在英雄联盟这个游戏中,内塔是从河道开始数第三个塔,在游戏的时候可以直接攻打,因此这个直接内塔的意思就是直接攻击从河道开始数第三个塔,在游戏中属于是战略的一种。
英雄联盟手游内塔血量
英雄联盟手游内塔血量是3500。英雄联盟手游防御塔镀层也从14分钟限时变成了全时段覆盖的效果。原来的五等分的镀层变成三等分的镀层。生命值最外塔是3000,二塔和高地塔都是3500。简介:《英雄联盟手游》(League of Legends: Wild Rift,简称LOL手游),是由美国拳头游戏(Riot Games)开发、中国内地由腾讯...
守望先锋:宝可梦、LOL、碰碰车流行游戏大综合
同样是双方选择英雄进行对战,不同的是胜负的评判标准改为了推塔的进程,与一般的推塔游戏一样,分为外塔,内塔,推完所有塔的一方获得胜利。以第一人称视角进行推塔游戏相信你们也都是第一次吧,其中的乐趣只有体验过才能明白,没有尝试过的小伙伴赶快来试试吧!精灵宝可梦是多少人童年的回忆啊,你们也...
幼儿园大班建构游戏教案
游戏玩法 1、飞英塔(塔里塔)第一步搭建里塔,可以用积木也可以用罐子代替。第二步搭建外塔,将内塔围在中间,适当运用垒高和架空的方法,使之可以透过外塔看见中间的里塔。第三步封顶,塔搭建得比内塔高的时候就可以封顶。第四步搭建塔顶。 2、府庙(庙里庙)第一步搭建里庙,确定"庙里庙"整体的位置。第二步搭...
峡谷有几个塔
如果摧毁了一座内塔,就可以继续前往敌方的水晶塔。水晶塔是敌方基地的中心,摧毁它就能取得胜利。水晶塔一共有两座,分别位于敌方基地的左右两侧。但是,水晶塔是游戏中的最后一道防线,它们的防御力非常强,需要依靠队伍的配合才能摧毁。因此,峡谷中一共有11个塔楼:3座外塔、6座内塔和2座水晶塔。在...
诸神皇冠剑圣怎么解锁
在诸神皇冠这款游戏中,剑圣的获得方法是首先在神庙内建造内塔雕像,然后把神庙内的神器肝到第三段,所需的材料可以在市场买,接着莫斯迪尔上会出现村庄,最后点击村庄即可解锁剑圣。
请大神解答一下LOL外塔、2塔、内塔、和双塔有什么不同?威力和血量不同...
外塔是指河岸两边的塔,也就是双方英雄对峙的塔;2塔是指从外塔往老家数的第二座塔;内塔就是召唤师平台上最外侧的塔,就是保护你方召唤师水晶的塔;双塔就是保护你方最大水晶的两座塔。双塔生命值1925,其他为2550 外塔初始攻击力152,40s后每分钟加6,最多200;2塔初始攻击力197,7min后每...
...手机版大海战获胜思路实战讲解[图]-手游攻略-游戏鸟手游网
【获胜思路一:击破敌方大本营】1、双方比速度 各自进攻对方大本营 比赛进行到后期,双方都把全部的外塔内塔摧毁完毕后,面对的就是最终的大本营之争了。这个时候会有两种情况,第一种就是双方在打完对手的最后一个内塔之后,都迅速的直接去攻击对手的大本营。这个时候比的就是速度了,谁先把对手的大本营...
《么么答》英雄联盟答案整理介绍_《么么答》英雄联盟答案整理是什么_百 ...
基地前的两个防御塔被称为内塔,选择A。这是对游戏地图基本结构的了解,内塔通常指靠近己方基地的防御塔。当击杀巨龙和纳什男爵会给队伍带来金钱收入,答案是B。这道题考查了游戏的经济机制,击杀大龙和男爵是关键的经济来源。英雄联盟中,古雅项链的价格是800,选择B。需要注意的是,这是一道关于游戏...
澄贾痔疾: 解: 设圆盘个数为N,则最少需要用An步完成. 可见,这是一道关于数列的题目: 则: A1=1; A2=3=2*A1+1; A3=7=2*A2+1; A4=15=2*A3+1; ... 所以,A(n+1)=2*An+1; 所以,An的通项公式为: An=2^n-1(2^n就是2的n次方) 所以7个圆盘最少的步骤为: A7=2^7-1=127(步) 问题得解. 明白了吗?不明白的话我再改.
寻甸回族彝族自治县15978546186: 谁能解4个圆盘的河内塔问题?认知心理学作业 - ?
澄贾痔疾:[答案] 这个问题很简单!书上都是答案的! 河内塔(又称汉诺塔)问题是印度的一个古老的传说.开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不...
寻甸回族彝族自治县15978546186: 古代印度婆罗门教寺庙内的僧侣们曾经玩过一种被称为“河内宝塔问题”的游戏,其玩法如下:如图,设有n(n∈N*)个圆盘依其半径大小,大的在下,小的... - ?
澄贾痔疾:[答案] (1)a1=1,a2=3,a3=7 事实上,要将n个圆盘全部转移到C柱上,只需先将上面n-1个圆盘转移到B柱上,需要an-1次转移,然后... ",title:"古代印度婆罗门教寺庙内的僧侣们曾经玩过一种被称为“河内宝塔问题”的游戏,其玩法如下:如图,设有n(n∈N...
寻甸回族彝族自治县15978546186: 谁能解4个圆盘的河内塔问题? - ?
澄贾痔疾: 这个问题很简单!书上都是答案的!河内塔(又称汉诺塔)问题是印度的一个古老的传说.开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众...
寻甸回族彝族自治县15978546186: 有一个小游戏好久以前玩的,忘记叫什么了.界面有三个棍子,然后一摞横条有大有小,要把横条移到另一个棍 - ?
澄贾痔疾: 汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上.并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘.
寻甸回族彝族自治县15978546186: 人教版四年级数学上册120页河内塔问题的规律是什么? - ?
澄贾痔疾: 趣味数学——河内塔问题趣味数学——河内塔问题如在四年级数学上册120页有这样的思考题:1.有三根杆子1.2.3.A杆上有若干碟子2.每次移动一块碟子,小的只能叠在大的上面3.把所有碟子从1杆全部移到3杆上经过研究发现,汉诺塔的破解很简单,就是按照移动规则向一个方向移动金片:如3阶汉诺塔的移动:1→3,1→2,3→2,1→3,2→1,2→3,1→3
寻甸回族彝族自治县15978546186: 西方神庙里的一种智力游戏叫什么 - ?
澄贾痔疾: 我想你知道可能是汉诺塔吧.汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上.并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘.
寻甸回族彝族自治县15978546186: 5层汉诺塔游戏31步怎么移到另一个柱子上? - ?
澄贾痔疾: 5层汉诺来塔游戏弄好四层后,先把上面的四个借助第三根柱子移到第二根柱子上,再把剩下的一个移到第三根柱源子上,最后借助第一根柱子将第二根柱子上的移到第三根柱子上去.1. 汉诺塔,又称河内塔,是一款WP7平台上源于印度一个古老传说的益智类游戏. 2. 汉诺塔:传说上帝创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上安大小顺序摞着64片黄金圆盘.上帝命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上.并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘.
寻甸回族彝族自治县15978546186: 一种古老的印度堆积木游戏 - ?
澄贾痔疾: 汉诺塔问题 汉诺塔(又称河内塔)问题是印度的一个古老的传说.开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个...
寻甸回族彝族自治县15978546186: 汉诺塔的八珠解法 - ?
澄贾痔疾: 汉诺塔(又称河内塔)问题是印度的一个古老的传说.开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬...