美文网首页每天学一点新知识
[数学]汉诺塔游戏_程序员数学入门_day63

[数学]汉诺塔游戏_程序员数学入门_day63

作者: FANDX | 来源:发表于2020-03-17 22:16 被阅读0次

    游戏规则

    有3根细柱子(A,B,C)。A柱上套着6个圆盘。圆盘按照从第一个圆柱放到最后一个圆柱上面

    Snipaste_2020-03-17_22-04-34.png
    • 一次只能移动柱子最上端的一个圆盘

    • 小圆盘上不可以放大的圆盘

    • 那么最少要移动多少次了?

    解决问题

    • 先将复杂的问题简单化,我们可以先考虑如果是3个圆盘的时候一共需要多少次

    • 简单的计算之后可以得到是7次移动可以解决问题

    • 那么6层汉诺塔

    • 首先,将5个圆盘从移动到C

    • 然后,将6个之中最大的圆柱从A移动到B柱

    • 最后,将5个圆盘从C柱移动到B柱

    • n层汉诺塔,所需要最少的移动次数为H(n)

      • 在n等于0的时候值为0

      • n大于0的时候等于H(n-1)+1+H(n-1)

    H6的值就是63

    这种H(n)和H(n-1)的关系称为递推公式

    相关文章

      网友评论

        本文标题:[数学]汉诺塔游戏_程序员数学入门_day63

        本文链接:https://www.haomeiwen.com/subject/ebzxyhtx.html