分享
 
 
 

梵塔问题

王朝百科·作者佚名  2009-12-29
窄屏简体版  字體: |||超大  

据说在东方的古国──印度土地上,有一座印度教的神庙,这庙有一块黄铜板,板上插著三根细细的、镶上宝石的细针,细针像菜叶般粗,而高就像成人由手腕到肘关节的长。

当印度教的主神梵天在创造地球这个世界时,就在其中的一根针上从下到上放了半径由大到小的六十四片圆金片环,这就是有名的「梵塔」或称「汉内塔」(Towers of Hanoi)。

天神梵天要这庙的僧侣,把这些金片全部由一根针移到另外一根指定的针上,一次只能移一片,不管在什么情况下,金片环的大小次序不能变更,小金片环永远只能放在大金片环上面。

只要有一天这六十四片的金环能从指定的针上完全转移到另外指定的针上,世界末日就来到,芸芸众生、神庙一切都将消灭,万物尽入极乐世界去。

n阶梵塔移动次数:设金片数为n,则移动次数=2的n次方-1

解决算法(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,A,C);

}

else

{

hanoi(n-1,A,C,B); /* Copyrighter by SS7E */

printf("Move disk %d from %c to %c

",n,A,C);

hanoi(n-1,B,A,C); /* Copyrighter by SS7E */

}

}

main() /* Copyrighter by SS7E */

{

int n;

printf("请输入数字n以解决n阶汉诺塔问题:

");

scanf("%d",&n);

hanoi(n,'A','B','C');

}/* Copyrighter by SS7E */

用Java算法

class HanoiTower

{

static void moves(char a,char c)

{

System.ou.println("From"+a+"To"+c);

}

static viod hanoi(int n,char a,char b,char c)

{

if(n==)

moves(a,c);

else

{

hanoi(n-1,a,c,b);

moves(a,c);

hanoi(n-1,b,a,c);

}

}

public static void main(String[] args)

{

int n;

n=Ingeter.parseInt(args[2]);

hanoi(n,'A','B','C');

}

}

2.3典型例题

例3 梵塔问题

如图:已知有三根针分别用1,2,3表示,在一号针中从小放n个盘子,现要求把所有的盘子

从1针全部移到3针,移动规则是:使用2针作为过度针,每次只移动一块盘子,且每根针上

不能出现大盘压小盘.找出移动次数最小的方案.

程序如下:

program fanta;

var

n:integer;

procedure move(n,a,b,c:integer);

begin

if n=1 then writeln(a,'--->',c)

else begin

move(n-1,a,c,b);

writeln(a,'--->',c);

move(n-1,b,a,c);

end;

end;

begin

write('Enter n=');

read(n);

move(n,1,2,3);

end.

用差分方程求解梵塔问题:

设按上小下大的次序,把依次排列好的t个金盘从一根柱子上移到另一根柱子上需要移动的次数为Y(t)次,同理,移动t+1个盘子的次数为Y(t+1)次。

建立Y(t)与Y(t+1)的关系式:Y(t+1)=2Y(t)+1

求递推,利用差分方程:Y(t)‘=2Y(t)+1

解得:Y(t)=c*(2^t)-1

因为Y(1)=2c-1=1,所以c=1.

则Y(t)=2^t-1

因此,梵塔问题常见的金盘片数为64片,经过计算机的运算,移动的次数需18,446,744,073,709,551,615。

假设1秒钟移动1片金盘,1年中共365×24×60×60=31536000秒,完成64片金盘的时间 为18,446,744,073,709,551,615/31536000,大约需要5849亿年。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有