如何求解递归T(n)=T(n-1)+T(n-3)-T(n-4),n>=4

how to solve the recurrence T(n)=T(n-1)+T(n-3)-T(n-4), n>=4

如何求解递归方程

1.T(n)=T(n-1)+T(n-3)-T(n-4), n>=4

2.subject 到 T(n)=n 0<=n<=3

我用类似于 C 风格的语言创建了算法。我猜 C# 会 运行 如果你添加函数 Main 和必需的包含。

int CountT(int n)
{
    if (n < 0)
    {
        throw new Exception("N is lower than zero");
    }
    else if (n <= 3)
    {
        return n;
    }
    else
    {
        return CountT(n-1)+CountT(n-3)-CountT(n-4);
    }
}

通过计算第一个数字,您可以很快怀疑解决方案是 T(n) = n

然后您可以使用数学归纳法证明这一点:

基础:

对于第一个元素,n = 4,我们可以这样计算值:

T(4) = T(3) + T(1) - T(0) = 3 + 1 - 0 = 4

所以这个说法是正确的。

归纳步骤:

假设T(n) = n,表明T(n+1) = n+1

T(n+1) = T(n) + T(n-2) - T(n-3) = n + (n-2) - (n-3) = n+1

显示所有 n >= 0T(n) = n