当我们推导数列求和公式时,有时候可能会先假设其形式是一个多项式,并根据数列的增长速度确定多项式的次数。对于平方数列的求和问题
S
2
(
n
)
=
1
2
+
2
2
+
⋯
+
n
2
S_2(n)=1^2+2^2+\dots+n^2
S2(n)=12+22+⋯+n2
我们假设它是一个三次多项式,为什么?
从增长速度角度大致进行判断
1. 单项平方数的增长速度
平方数列中的每一项为
k
2
k^2
k2,随着
k
k
k的增加,
k
2
k^2
k2的增长速度是二次的。例如:
1
2
=
1
,
2
2
=
4
,
3
2
=
9
,
4
2
=
16
,
…
1^2=1,\quad2^2=4,\quad3^2=9,\quad4^2=16,\dots
12=1,22=4,32=9,42=16,…
2. 求和后的增长速度
如果我们对平方数列进行求和 S 2 ( n ) = 1 2 + 2 2 + ⋯ + n 2 S_2(n)=1^2+2^2+\dots+n^2 S2(n)=12+22+⋯+n2,那么整个和的增长速度将比单个平方项更高。
- 当 n n n较大时, S 2 ( n ) S_2(n) S2(n)的主要贡献来自于最大的几项(即接近 n 2 n^2 n2的部分,有点计算时间复杂度的意思了)。
- 因此, S 2 ( n ) S_2(n) S2(n)的增长速度大致与 n 3 n^3 n3成正比。
从空间角度来理解一下,将平方数列的每一项看作一个面积(是二维的),那么它们的累积和可以近似看作一个体积(三维的)。因此, S 2 ( n ) S_2(n) S2(n)的增长速度应该是三次的。但是这有点像是个猜想,不能完全论证其正确性。
差分法验证上面猜想的正确性
多项式的次数与差分的关系:对于一个 m m m 次多项式 P ( n ) P(n) P(n) ,其 m m m阶差分是一个常数,而 m + 1 m+1 m+1 阶差分及更高阶差分均为零。因此,通过差分法可以确定多项式的次数。
1. 差分定义
设
f
(
n
)
f(n)
f(n)是一个函数,其一阶差分为:
Δ
f
(
n
)
=
f
(
n
+
1
)
−
f
(
n
)
\Delta f(n)=f(n+1)-f(n)
Δf(n)=f(n+1)−f(n)
二阶差分为:
Δ
2
f
(
n
)
=
Δ
(
Δ
f
(
n
)
)
=
Δ
f
(
n
+
1
)
−
Δ
f
(
n
)
\Delta^2f(n)=\Delta(\Delta f(n))=\Delta f(n+1)-\Delta f(n)
Δ2f(n)=Δ(Δf(n))=Δf(n+1)−Δf(n)
依此类推计算高阶差分。
我们知道
S
2
(
n
)
=
1
2
+
2
2
+
⋯
+
n
2
S_2(n)=1^2+2^2+\dots+n^2
S2(n)=12+22+⋯+n2,因此:
S
2
(
n
+
1
)
=
S
2
(
n
)
+
(
n
+
1
)
2
S_2(n+1)=S_2(n)+(n+1)^2
S2(n+1)=S2(n)+(n+1)2
由此可得一阶差分为:
Δ
S
2
(
n
)
=
S
2
(
n
+
1
)
−
S
2
(
n
)
=
(
n
+
1
)
2
\Delta S_2(n)=S_2(n+1)-S_2(n)=(n+1)^2
ΔS2(n)=S2(n+1)−S2(n)=(n+1)2
二阶差分:
Δ
2
S
2
(
n
)
=
Δ
(
Δ
S
2
(
n
)
)
=
(
n
+
2
)
2
−
(
n
+
1
)
2
=
2
n
+
3
\Delta^2S_2(n)=\Delta(\Delta S_2(n))=(n+2)^2-(n+1)^2=2n+3
Δ2S2(n)=Δ(ΔS2(n))=(n+2)2−(n+1)2=2n+3
三阶差分:
Δ
3
S
2
(
n
)
=
Δ
(
Δ
2
S
2
(
n
)
)
=
[
2
(
n
+
1
)
+
3
]
−
[
2
n
+
3
]
=
2
\Delta^3S_2(n)=\Delta(\Delta^2S_2(n))=[2(n+1)+3]-[2n+3]=2
Δ3S2(n)=Δ(Δ2S2(n))=[2(n+1)+3]−[2n+3]=2
四阶差分:
Δ
4
S
2
(
n
)
=
Δ
(
Δ
3
S
2
(
n
)
)
=
2
−
2
=
0
\Delta^4S_2(n)=\Delta(\Delta^3S_2(n))=2-2=0
Δ4S2(n)=Δ(Δ3S2(n))=2−2=0
四阶差分为零,而三阶差分是一个常数。这表明 S 2 ( n ) S_2(n) S2(n)是一个三次多项式。