解决河内塔问题

时间:2010-09-28 14:00:01

标签: algorithm towers-of-hanoi

我如何解决河内塔问题的运行时间。我得到一个像t(n)= 2t(n-1)+ 1的递归反射。绘制递归树后,我得到每一步的值,如1 + 2 + 4 + 8 ...树的高度将是lg (N)。我如何计算系列的总和?我什么时候停止?

2 个答案:

答案 0 :(得分:6)

在递归树的每个级别得到的是2的幂。因此,总和是:2^0 + 2^1 + 2^2 + ... + 2^{n-1}

这是一个几何总和:http://en.wikipedia.org/wiki/Geometric_progression

S(n) = 1 + 2 + 4 + ... + 2^{n-1}。然后:S(n) - 2*S(n) = 1 - 2^n

最后:S(n) = 2^n - 1

答案 1 :(得分:2)

您检查过http://en.wikipedia.org/wiki/Tower_of_Hanoi了吗?你有一切都在那里。