📜  序列的 n 项之和

📅  最后修改于: 2021-09-22 10:42:37             🧑  作者: Mango

如果序列的n 项由 Tn=an 3 +bn 2 +cn+d 给出,其中 a、b、c、d 是常数,则 n 项之和。

Sn = a*Σ(n3)+b*Σ(n2)+c*Σ(n)+Σ(d) 

其中 Σ 表示求和。

证明 :
让我们找到一些这个系列。所以,

Sn = T1+T2+T3+T4+ ... +Tn
T1 = a(1)3+b(1)2+c(1)+d
T2 = a(2)3+b(2)2+c(2)+d
T3 = a(3)3+b(3)2+c(3)+d
...
...
Tn = a(n)3+b(n)3+c(n)+d 

添加这些所有条款,

Sn 
= T1+T2+T3+ ... +Tn
= a((1)3+(2)3+(3)3+ ... 
        +(n)3)+b((1)2+(2)2+(3)2+ ... 
        +(n)2)+c(1+2+3+ ... +n)+d(1+1+1+ ... +1) 
Sn = a*Σ(n3)+b*Σ(n2)+c*Σ(n)+dn 

同样,如果我们是格式中任何高阶或低阶项的第 n 项。

Tn = a1np+a2np-1+a3np-2++ 
... +apn1+ap+1
Sn = a1Σ(np)+a2Σ(np-1)+a3Σ(np-2)+ 
... +apΣ(n)+nap+1

其中 p, a1, a2, …… 是一些常数。

例子 :
第 n 项给出为,

Tn = n2+n+1 

计算 S n

解释 :

Sn = Σ(Tn)
Sn = Σ(n2)+Σ(n)+Σ(1)
Sn = (n(n+1)(2n+1))/6+n(n+1)/2+n 

因为,

Σ(n2) = (n(n+1)(2n+1))/6, 
Σ(n) = (n(n+1))/2, 
Σ(1) = n 

因此,如果给定第 n 项,我们可以找到任何序列的总和。当时间复杂度作为 n 的函数给出并且我们必须找到整个算法的时间复杂度时,本文有助于找到方程的时间复杂度。

#include 
using namespace std;
int main()
{
    int k = 3;
    int sum = 0;
    // finding sum of n^4 terms
    for (int i = 1; i <= k; i++)
        sum += (i * i * i * i);
    // sum of first k natural numbers is k(k+1)/2.
    sum += (k * (k + 1)) / 2;
    // we can also use code to calculate it
    // for(int i=1;i<=k;i++)
    // sum+=i;
  
    // sum of constant term 1 for n times is n
    sum += k;
    // we can also use code to calculate it.
    // for(int i=1;i<=k;i++)
    // sum+=1;
    cout << sum << endl;
}

输出 :

107 

上面给定的代码找到了 3 项的序列总和,其中,

Tn = n4+n+1