【发布时间】:2019-11-04 00:47:26
【问题描述】:
我无法从概念上理解著名的 n 楼梯攀登问题的解决方案。 n 阶梯问题是:
你有 n 步要爬。您一次只能爬 1 或 2 级台阶。找出到达第 N 步的方法数。
为简单起见,我们只使用n = 2 的情况。解决方案是T(n) = T(n-1) + T(n-2),这当然是斐波那契数列。
为什么的解释通常是这样的:
您处于第 n 步。考虑到你一次可以爬 1 级或 2 级,你是如何到达那里的?好吧,您的上一步必须在步骤
n-1(采取 1 步)或步骤n-2(采取 2 步)处。现在,有T(n-1)方法可以到达第n-1 步,T(n-2)方法可以到达第n-2 步,这意味着如果您的最后一步是@987654329,则有T(n-2)方法可以到达n@ 和T(n-1)到达n的方法,如果您的最后一步是在n-1。这是你最终到达 n 的唯一两种可能性,所以到达第 n 步的方法总数是T(n-1) + T(n-2)
我无法将以下部分概念化:
有
T(n-1)方法可以到达第n-1 步,T(n-2)方法可以到达第n-2 步,这意味着如果您的最后一步在@,则有T(n-2)方法可以到达n987654338@ 和T(n-1)到达n的方法,如果您的最后一步是n-1。
这听起来不对。这个解释似乎自相矛盾。
有
T(n-1)方法可以到达第n-1 步
和
和
T(n-1)到达n的方法,如果您的最后一步是n-1
T(n-2) 也是如此
我也对第二点感到困惑。当我们说解决方案是T(n-1) + T(n-2) 时,我的大脑会大喊‘但是等一下,你在重复计算。 T(n-1) 已经 包括 T(n-2)'。
谁能帮我从概念上理解T(n) = T(n-1) + T(n-2)的原因
PS 这不是关于实施解决方案的问题,而是关于如何解释/理解答案的问题。
【问题讨论】:
-
如果您在数学证明方面遇到困难,那么编程问答网站可能是一个错误的寻求帮助的地方。
-
也许你应该尝试写出 N 的小值的所有可能序列。将每个序列写成一系列步数。
标签: algorithm recursion dynamic-programming fibonacci