编程之战 第七十三章 汉诺塔(下)

小说:编程之战 作者:程序小猿 更新时间:2024-08-06 08:41:20 源网站:顶点小说
  铜板上,三根宝石针折射出夺目的光芒,在杨成眼中却是另一番景象。

  在他的脑海中,装载有金片的宝石针,被命名为a,其他两根,则是b和c。

  a宝石针上的三块金片,从小到大,从上而下,编号为1,2,3。

  那这个问题就可以阐述为,将宝石针a上的所有金片,移到b上,并且按照同样的顺序叠置。

  嗯,就是这样!

  杨成脑海中继续进行推演。

  按照汉诺塔问题的解法,先将宝石针a,b,c排成一个三角形。

  a->b->c->a

  这样就构成了一个顺时针循环。

  接着,算法如下:

  在移动金片的过程中,如果是奇数次移动(比如说第一次),将最小的金片移到顺时针方向的下一根宝石针上。

  比方说第一次移动,就是将a1移到b。

  如果是偶数次移动,则保持最小的金片不动,而在其他两根宝石针之间,将较小的金片移到另一根上面去。

  比方说第二次移动,此时最小的金片在b,保持不动,而将a2移到c。

  以后每一次移动都按照上面来做。

  所以,我们必须记录两个东西:

  1.当前移动的次数

  2.最小的金片位于哪根宝石针上(初始化是宝石针a)

  这个算法将持续到,所有金片都按照顺序叠置到了宝石针b,算法结束。

  按照这个算法,杨成很容易就求出了移动金片的过程。

  “a1到b”

  “a2到c”

  “b1到c”

  “a3到b”

  “c1到a”

  “c2到b”

  “a1到b”

  “一共是7步”,杨成不慌不忙地说出了答案。

  “很好!”,一直沉默不语的僧侣说出这几个字。

  “关于世界的终极答案,即使是神也无从知晓”。

  “但我们不能失去进取心,停下对未知世界探索的脚步!”

  “叮!恭喜您完成汉诺塔任务!当前积分173分,击败了全球46%的玩家,请您再接再厉!”
为更好的阅读体验,本站章节内容基于百度转码进行转码展示,如有问题请您到源站阅读, 转码声明
八零电子书邀请您进入最专业的小说搜索网站阅读编程之战,编程之战最新章节,编程之战 顶点小说!
可以使用回车、←→快捷键阅读
本站根据您的指令搜索各大小说站得到的链接列表,与本站立场无关
如果版权人认为在本站放置您的作品有损您的利益,请发邮件至,本站确认后将会立即删除。
Copyright©2018 八零电子书