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

游戏规则

有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)