Python 实现递归算法之汉诺塔
如图的小游戏,汉诺塔:
游戏的目的是将最左边的三块移动到最右边,游戏即为成功。
下面按照代码的步骤进行移动,三根柱子分别代表了x,y,z:
发现可以实现游戏目的!
当然,三个对于很多人来说并不难实现目标,但是当块变成了5个甚至8个呢
下面,我们来试试7个方块,同样是三根柱子,人的计算就很难实现游戏目标了
所以我们用代码来试试:
可以看到非常长,所以我来按照他的指示来进行游戏
游戏成功!
总共有128步操作,如果人为的来进行游戏的话,很有可能会出错。
所以在此运用了递归算法,编写递归函数来教我们如何进行下一步。
以下是汉诺塔的源代码:
def hanoi(n ,x ,y ,z): if n == 1: print(x, ‘-->‘ ,z) else: hanoi(n-1,x,z,y) print(x ,‘-->‘ ,z) hanoi(n-1,y,x,z) n = int(input("请输入层数:")) hanoi(n,‘x‘,‘y‘,‘z‘)
相关推荐
shawsun 2020-03-01
蜗牛慢爬的李成广 2020-04-07
ericxieforever 2020-03-28
HLW0 2012-02-01
sxyyu 2019-07-01
LITElric 2019-07-01
wangxiaohua 2010-05-30
wuxiaosi0 2019-03-13
cyjsky 2017-05-20
MrA 2018-07-05
jiayuqicz 2018-04-18
yancey木易的blog 2018-03-19
tiewen 2019-02-18
BlowfishKing 2015-04-21
HTML学堂码匠 2016-05-17
danwenxuan 2014-07-23
jiayuqicz 2018-09-27
不羈 2008-05-02