zoukankan      html  css  js  c++  java
  • The Tower of Hanoi

    汉诺塔游戏是19世纪由法国数学家 Lucas 发明的,这个游戏由三根柱子以及n个大小不一的圆盘组成,初始时全部的圆盘都放在第一个柱子(最左边的柱子)上,并且从小到大排列,游戏的目标是将全部的圆盘从小到大放到第二个柱子上,游戏规则是:“每次只能移动一个圆盘,任何时候都不能把较大的圆盘叠在较小的圆盘上”。

    我们在这里需要讨论如果要完成游戏,则需要移动的次数。

    设 $H_n$ 表示当有n个圆盘时用方法A需要移动的次数。我们可以先用方法A将前n-1个圆盘移到第3个柱子(移动次数为$H_{n-1}$),再将最左边柱子的剩下的一个圆盘移到第二个柱子(移动次数为1次),再将第三个柱子上的n-1个圆盘用方法A放到第2个柱子上(移动次数为$H_{n-1}$),因此$H_n=2H_{n-1}+1$,其中$H_1=1$。

    解得:$H_n=2^n -1$

    因此需要指数次的移动次数才能够完成汉诺塔。

    Reve's Puzzle(雷夫难题):4个柱子的汉诺塔问题。

    作者:xiazdong
    出处:http://blog.xiazdong.info
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
  • 相关阅读:
    Html5——视频标签使用
    Android的四大组件
    Android 硬编码
    按键事件处理
    android Keycode 完全对照表
    Activity的生命周期
    音乐播放控制
    Android permission 访问权限大全
    制作留言板相关资料
    adb查询log命令
  • 原文地址:https://www.cnblogs.com/xiazdong/p/3102688.html
Copyright © 2011-2022 走看看