证明斐波那契递归算法时间复杂度

发布于 2024-12-07 12:05:29 字数 381 浏览 5 评论 0原文

我试图理解我的算法教科书中的归纳证明。作者用归纳法证明了 T(n) 总是大于 2^(n/2)(这是为了使用递归算法计算第 n 个斐波那契数): 在此处输入图像描述

我不明白的是最后一步,他正在操纵方程。他是如何从:

> 2^(n-1)/2 + 2^(n-2)/2 +1

> 2^(n-2)/2 + 2^(n-2)/2 +1

他只是随机地将 2^(n-1)/2 更改为 2^(n-2)/2。这是一个错误吗?

谢谢。

I am trying to understand a proof by induction in my algorithms text book. Here's the author is proving using induction that the T(n) will always be greater than 2^(n/2) (This is for calculating the nth fibonacci number using the recursive algorithm):
enter image description here

What I don't understand is the very last step, where he is manipulating the equation. How does he go from:

> 2^(n-1)/2 + 2^(n-2)/2 +1

to

> 2^(n-2)/2 + 2^(n-2)/2 +1

He just randomly changes 2^(n-1)/2 to 2^(n-2)/2. Is this a mistake?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

许你一世情深 2024-12-14 12:05:29

这是故意的,如果你仔细观察,这是一个不等式,他用它来完成归纳步骤。

注意拼写错误,它应该说“我们必须证明 T(n) > 2^(n/2)”而不是 <。

It's deliberate, if you look closely it's an inequation and he uses it do finish the induction step.

Note the typo, it should say "We must show that T(n) > 2^(n/2)" and not <.

望她远 2024-12-14 12:05:29

我相信这个特定的步骤违背了这样的假设:

T(n-1) > T(n-2)

因此,我们可以形成一个代数不等式:

T(n-1) + T(n-2) + 1 > T(n-2) + T(n-2) + 1

可以从右侧去掉+1(因为对于在较小的一侧减去的任何东西,不等式仍然成立):

T(n-1) + T(n-2) + 1 > T(n-2) + T(n-2)

我们 将此替换为 T(m) = 2^(m/2)(对于任何小于 n 且 > 2 的值,其中 n-1 和 n-2 都符合条件):

2^(n-1)/2 + 2^(n-2)/2 + 1 > 2^(n-2)/2 + 2^(n-2)/2

这将帮助您完成特定的步骤。正如我上面的海报所说,这是故意这样做的,以达到 2^(n/2) 。

I believe that particular step runs off the assumption that:

T(n-1) > T(n-2)

Therefore, we can form an algebraic inequality:

T(n-1) + T(n-2) + 1 > T(n-2) + T(n-2) + 1

We can lop off the + 1 from the right side (because the inequality will still hold true for anything subtracted away on the LESSER side):

T(n-1) + T(n-2) + 1 > T(n-2) + T(n-2)

From this, substitute our T(m) = 2^(m/2) (for anything less than n and > 2, which n-1 and n-2 both qualify):

2^(n-1)/2 + 2^(n-2)/2 + 1 > 2^(n-2)/2 + 2^(n-2)/2

That gets you that particular step. It's done this way deliberately as the poster above me stated, to get to 2^(n/2).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文