【问题标题】:Unrolling Method For: T(n) = 1 when n = 0 and 2T(n-1) + 1展开方法:当 n = 0 和 2T(n-1) + 1 时 T(n) = 1
【发布时间】:2019-06-20 07:24:14
【问题描述】:

对于

  • 当 n = 0 时 T(n) = 1
  • T(n) = 2T(n-1) + 1 否则

我知道我们应该寻找模式并理解问题,直到我们开始用不同的变量转换方程。但是,一旦我到达那里,我不明白它是如何完成的以及为什么要完成某些事情。

我的问题是我们在 2i·T(n-1) 处将 i 替换为 n。但是,完整的解释也会很有用!

【问题讨论】:

  • 我投票结束这个问题,因为它是一个数学问题,而不是一个编程问题。
  • 我投票决定将此问题作为离题结束,因为它属于另一个站点。 math.stackexchange.com 或许?

标签: algorithm math recurrence


【解决方案1】:

同理 9999910 是 10000010 - 1, 111112 是 1000002 - 1.

有两种方法来看待这个问题。一个是来自一些任意的 n 向后工作,您的描述已经涵盖了。我发现另一种有用的方法是从零开始,一直到 n

  • T(0) = 1
  • T(1) = 1
  • T(2) = 3
  • ...

这里 n 个连续的一位等价于 2n + 1 - 1。

您问题中的解释只是使用 i 作为从 1 到 n 的计数器。它不是等式的一部分,除了作为计步器。在最后一步中,i = n,因此您可能会对转换感到困惑。

【讨论】:

    【解决方案2】:

    第一次看到公式时,我遇到了和你一样的问题。但让我们从头开始。
    首先,您尝试通过i 逐步接近最终深度n。因此,对于每个数字i,您可以解析公式i 次(在图片中为i=1i=2i=3i=4),但要注意您还不能解析T(n-i)。但是您可以推导出i=n 的模式。此行实际上以错误开头:图片显示i=n-i,但实际上应该是i=n,因为您已到达底部。
    其余的很简单:你写下你看到的模式并将其放入一个求和公式 (Sum_{j=0}^{i-1}2^j)。您将i 替换为n,因为这是该行的前提。您将T(n-n) 替换为T(0)=1。接下来应用有限几何级数,因此去掉了和符号。其余的应该是清楚的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-07
      • 1970-01-01
      • 1970-01-01
      • 2016-03-12
      • 2012-03-21
      • 2012-10-17
      • 1970-01-01
      相关资源
      最近更新 更多