汉诺塔5层攻略图解,汉诺塔7层攻略图解口诀

首页 > 经验 > 作者:YD1662022-11-06 13:23:22

汉诺塔5层攻略图解,汉诺塔7层攻略图解口诀(5)

通过1、2、3阶汉诺塔移动步骤,我们可以推倒出一个公式:

完成步骤=2^n-1,n代表盘子的个数

通过公式我们可以推倒出,四阶汉诺塔需要15步骤,五阶汉诺塔需要31步骤,而64阶汉诺塔需要多少步骤呢?2的64次方减1(18446744073709500000),需要这么多步骤。假设一个步骤需要1秒,我们将结果换算成年的单位:

2^64-1=18446744073709500000 1年=360*24*3600=31104000秒

大概需要5800亿年。宇宙大爆炸至今才45亿年。假设从那时候开始玩,离完成还需要很多很多年,估计玩到人类灭绝还玩不完。

每一个游戏背后都有一个逻辑算法在里面。通过汉诺塔我们已经分析出它的算法,现在我们用Java语言实现它的算法。

汉诺塔5层攻略图解,汉诺塔7层攻略图解口诀(6)

我们通过运行方法可以得到1-5阶汉诺塔步骤:

通过代码我们可以算出任意阶的汉诺塔步骤。64阶的汉诺塔步骤电脑也可以算出来,但是电脑需要跑很长时间,即使算出来,也没有条件存储步骤的数据。

附上一段64阶汉诺塔程序运行的视频

算法的逻辑其实很简单:当level(代表几阶汉诺塔)=1的时候,从第一个塔移动到第三个塔,这是一种特殊情况。当level>1时候,递归移动level-1层汉诺塔,直到leve=1停止递归。

这就是汉诺塔的递归算法,古人的智慧真的是很强大。

汉诺塔5层攻略图解,汉诺塔7层攻略图解口诀(7)

上一页12末页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.