一些简单数列求和问题的研究

等差与等比数列

一阶等差数列求和

定义等差数列 { a n } \{a_n\} {an},公差为 d d d

例如数列 1 , 3 , 5 , 7 1,3,5,7 1,3,5,7就是等差数列,其中 a 1 = 1 a_1=1 a1=1为首项。

通项公式

a n = a 1 + ( n − 1 ) ⋅ d a_n=a_1+(n-1)\cdot d an=a1+(n1)d

求和

∑ n i = 1 i = n ( n + 1 ) 2 \underset{i=1}{\overset{n}{\sum}}i=\frac{n(n+1)}{2} i=1ni=2n(n+1)
∑ n i = 1 a i = ( 首项 + 末项 ) × 项数 2 = n ⋅ a 1 + d ⋅ n ( n − 1 ) 2 \underset{i=1}{\overset{n}{\sum}}a_i=\frac{(首项+末项)\times 项数}{2}=n\cdot a_1+d\cdot \frac{n(n-1)}2 i=1nai=2(首项+末项)×项数=na1+d2n(n1)

证明方法有很多,这里就直接从和式的变换出发作为证明:

先证明 ∑ n i = 1 i = n ( n + 1 ) 2 \underset{i=1}{\overset{n}{\sum}}i=\frac{n(n+1)}{2} i=1ni=2n(n+1)

∑ n i = 1 i = 1 2 ⋅ 2 ∑ n i = 1 i = 1 2 ( ∑ n i = 1 i + ∑ n i = 1 n − i + 1 ) = 1 2 ∑ n i = 1 n + 1 = n ( n + 1 ) 2 \underset{i=1}{\overset{n}{\sum}}i=\frac 12\cdot{2}\underset{i=1}{\overset{n}{\sum}}i=\frac 12\left(\underset{i=1}{\overset{n}{\sum}}i+\underset{i=1}{\overset{n}{\sum}}n-i+1\right)=\frac 12 \underset{i=1}{\overset{n}{\sum}}n+1=\frac {n(n+1)}2 i=1ni=212i=1ni=21(i=1ni+i=1nni+1)=21i=1nn+1=2n(n+1)

就可以证明:
∑ n i = 1 a i = ∑ n i = 1 a 1 + ( i − 1 ) ⋅ d = ∑ n i = 1 a 1 + d ∑ n i = 1 ( i − 1 ) \underset{i=1}{\overset{n}{\sum}}a_i=\underset{i=1}{\overset{n}{\sum}}a_1+(i-1)\cdot d=\underset{i=1}{\overset{n}{\sum}}a_1+d\underset{i=1}{\overset{n}{\sum}}(i-1) i=1nai=i=1na1+(i1)d=i=1na1+di=1n(i1)
= n ⋅ a 1 + d ∑ n − 1 i = 0 i = n ⋅ a 1 + d ⋅ n ( n − 1 ) 2 =n\cdot a_1+d\underset{i=0}{\overset{n-1}{\sum}}i=n\cdot a_1+d\cdot\frac {n(n-1)}2 =na1+di=0n1i=na1+d2n(n1)
= n ⋅ 2 a 1 + d ( n − 1 ) 2 = n ⋅ ( a 1 ) + ( a 1 + ( n − 1 ) ⋅ d ) 2 = 项数 × 首项 + 末项 2 =n\cdot\frac{2a_1+d(n-1)}{2}=n\cdot\frac{(a_1)+(a_1+(n-1)\cdot d)}{2}=项数\times\frac{首项+末项}{2} =n22a1+d(n1)=n2(a1)+(a1+(n1)d)=项数×2首项+末项

QED.

后续证明常用和式的变换。

二阶、三阶等差数列求和往往使用和式的变换把式子展开,借助 K K K次方数求和。更高阶等差数列求和较复杂。

一阶等比数列求和

定义等比数列 { a n } \{a_n\} {an},公比为 q ( q ≠ 0 ) q(q\neq0) q(q=0)

通项公式

a n = a 1 ⋅ q n − 1 a_n=a_1\cdot q^{n-1} an=a1qn1

求和

∑ n i = 1 q i − 1 = 公 比 n − 1 公比 − 1 = q n − 1 q − 1 \underset{i=1}{\overset{n}{\sum}}q^{i-1}=\frac {公比^n-1}{公比-1}=\frac {q^n-1}{q-1} i=1nqi1=公比1n1=q1qn1
∑ n i = 1 a 1 q i − 1 = a 1 ⋅ 公 比 n − 1 公比 − 1 = a 1 ⋅ q n − 1 q − 1 \underset{i=1}{\overset{n}{\sum}}a_1q^{i-1}=a_1\cdot\frac {公比^n-1}{公比-1}=a_1\cdot\frac {q^n-1}{q-1} i=1na1qi1=a1公比1n1=a1q1qn1

证明:
∑ n i = 1 q i − 1 = A \underset{i=1}{\overset{n}{\sum}}q^{i-1}=A i=1nqi1=A

则: q ∑ n i = 1 q i − 1 = ∑ n i = 1 q i q\underset{i=1}{\overset{n}{\sum}}q^{i-1}=\underset{i=1}{\overset{n}{\sum}}q^i qi=1nqi1=i=1nqi

就会有 q A − A = ( q − 1 ) A qA-A=(q-1)A qAA=(q1)A,因此:
A = 1 q − 1 ( q A − A ) A=\frac{1}{q-1}\left(qA-A\right) A=q11(qAA)
= 1 q − 1 ( ∑ n i = 1 q i − ∑ n i = 1 q i − 1 ) =\frac{1}{q-1}\left(\underset{i=1}{\overset{n}{\sum}}q^i-\underset{i=1}{\overset{n}{\sum}}q^{i-1}\right) =q11(i=1nqii=1nqi1)
= 1 q − 1 ( ∑ n i = 1 q i − ∑ n − 1 i = 0 q i ) =\frac 1{q-1}\left(\underset{i=1}{\overset{n}{\sum}}q^i-\underset{i=0}{\overset{n-1}{\sum}}q^i\right) =q11(i=1nqii=0n1qi)
= q n − q 0 q − 1 = q n − 1 q − 1 =\frac{q^n-q^0}{q-1}=\frac{q^n-1}{q-1} =q1qnq0=q1qn1

第二个式子容易证明。

QED.

∑ n i = 1 p i 2 + i \underset{i=1}{\overset{n}{\sum}}p^{i^2+i} i=1npi2+i等较复杂,更高阶等比数列求和较复杂。

固定指数求和

K次方数求和

∑ n i = 1 i K \underset{i=1}{\overset{n}{\sum}}i^K i=1niK表示 K K K次方数求和。

等差求和

一次方数求和就是等差求和。
∑ n i = 1 i = n ( n + 1 ) 2 \underset{i=1}{\overset{n}{\sum}}i=\frac {n(n+1)}2 i=1ni=2n(n+1)

平方数求和

∑ n i = 1 i 2 = n ( n + 1 ) ( 2 n + 1 ) 6 \underset{i=1}{\overset{n}{\sum}}i^2=\frac{n(n+1)(2n+1)}{6} i=1ni2=6n(n+1)(2n+1)

立方数求和

∑ n i = 1 i 3 = ( n ( n + 1 ) 2 ) 2 \underset{i=1}{\overset{n}{\sum}}i^3=\left(\frac{n(n+1)}{2}\right)^2 i=1ni3=(2n(n+1))2

下面给出证明。

基于伯努利数的K次方数求和

∑ i = 1 n i k = ∑ i = 1 k + 1 ( − 1 ) δ i k ( k + 1 i ) B k + 1 − i n i k + 1 \overset{n}{\underset{i=1}\sum}i^k=\frac {\overset{k+1}{\underset{i=1}\sum}(-1)^{\delta _{ik}}\begin{pmatrix}k+1\\ i\end{pmatrix}B_{k+1-i}n^i}{k+1} i=1nik=k+1i=1k+1(1)δik(k+1i)Bk+1ini

伯努利数求起来慢,基本上没什么用。

基于斯特林反演的K次方数求和

∑ i = 0 n i K = ∑ j = 0 K { K j } j ! ( n + 1 j + 1 ) \overset{n}{\underset{i=0}\sum}i^K=\overset{K}{\underset{j=0}\sum}\begin{Bmatrix}K\\ j\end{Bmatrix}j!\begin{pmatrix}n+1\\ j+1\end{pmatrix} i=0niK=j=0K{Kj}j!(n+1j+1)

应用第二类斯特林数求值可以做到 O ( K log ⁡ K ) O(K\log K) O(KlogK)

证明:

∑ i = 0 n i K = ∑ i = 0 n ∑ j = 0 K { K j } ( i j ) j ! = ∑ j = 0 K { K j } j ! ∑ i = 0 n ( i j ) \overset{n}{\underset{i=0}\sum}i^K=\overset{n}{\underset{i=0}\sum}\overset{K}{\underset{j=0}\sum}\begin{Bmatrix}K\\ j\end{Bmatrix}\begin{pmatrix}i\\ j\end{pmatrix}j!=\overset{K}{\underset{j=0}\sum}\begin{Bmatrix}K\\ j\end{Bmatrix}j!\overset{n}{\underset{i=0}\sum}\begin{pmatrix}i\\ j\end{pmatrix} i=0niK=i=0nj=0K{Kj}(ij)j!=j=0K{Kj}j!i=0n(ij)

最后一个式子是朱世杰恒等式。

= ∑ j = 0 K { K j } j ! ( n + 1 j + 1 ) =\overset{K}{\underset{j=0}\sum}\begin{Bmatrix}K\\ j\end{Bmatrix}j!\begin{pmatrix}n+1\\ j+1\end{pmatrix} =j=0K{Kj}j!(n+1j+1)

基于伸缩级数的K次方数求和

伸缩级数

伸缩级数常用于各类数列问题的探索中。
其实就是对差分数组求前缀和那个意思。

伸缩级数:
∑ i = l r f ( i ) − f ( i − 1 ) = f ( r ) − f ( l − 1 ) \overset{r}{\underset{i=l}\sum}f(i)-f(i-1)=f(r)-f(l-1) i=lrf(i)f(i1)=f(r)f(l1)

平方数求和公式

先来推导平方数求和公式。
∑ i = 1 n i 2 = n ( n + 1 ) ( 2 n + 1 ) 6 \overset{n}{\underset{i=1}\sum}i^2=\frac {n(n+1)(2n+1)}6 i=1ni2=6n(n+1)(2n+1)

证明:
根据伸缩级数,会有:
∑ i = 1 n i 3 − ( i − 1 ) 3 = n 3 \overset{n}{\underset{i=1}\sum}i^3-(i-1)^3=n^3 i=1ni3(i1)3=n3
∑ i = 1 n i 3 − i 3 + 3 i 2 + 3 i + 1 = n 3 \overset{n}{\underset{i=1}\sum}i^3-i^3+3i^2+3i+1=n^3 i=1ni3i3+3i2+3i+1=n3
∑ i = 1 n 3 i 2 + 3 i + 1 = n 3 \overset{n}{\underset{i=1}\sum}3i^2+3i+1=n^3 i=1n3i2+3i+1=n3
3 ∑ i = 1 n i 2 − 3 ∑ i = 1 n i + ∑ i = 1 n 1 = n 3 3\overset{n}{\underset{i=1}\sum}i^2-3\overset{n}{\underset{i=1}\sum}i+\overset{n}{\underset{i=1}\sum}1=n^3 3i=1ni23i=1ni+i=1n1=n3
3 ∑ i = 1 n i 2 − 3 ∑ i = 1 n i + n = n 3 3\overset{n}{\underset{i=1}\sum}i^2-3\overset{n}{\underset{i=1}\sum}i+n=n^3 3i=1ni23i=1ni+n=n3
3 ∑ i = 1 n i 2 − 3 n ( n + 1 ) 2 + n = n 3 3\overset{n}{\underset{i=1}\sum}i^2-\frac{3n(n+1)}{2}+n=n^3 3i=1ni223n(n+1)+n=n3
∑ i = 1 n i 2 = n 3 + 3 n ( n + 1 ) 2 − n 3 = n ( n + 1 ) ( 2 n + 1 ) 6 \overset{n}{\underset{i=1}\sum}i^2=\frac{n^3+\frac{3n(n+1)}{2}-n}3=\frac{n(n+1)(2n+1)}6 i=1ni2=3n3+23n(n+1)n=6n(n+1)(2n+1)

立方数求和公式

∑ i = 1 n i 3 = ( n ( n + 1 ) 2 ) 2 \overset{n}{\underset{i=1}\sum}i^3=\left(\frac{n(n+1)}{2}\right)^2 i=1ni3=(2n(n+1))2

证明同理。

K次方求和公式

∑ i = 1 n i K = n K + 1 + ∑ i = 1 n ∑ j = 1 K − 1 ( K + 1 j ) i j ( − 1 ) K + 1 − j ( K + 1 K ) \overset{n}{\underset{i=1}\sum}i^{K}=\frac{n^{K+1}+\overset{n}{\underset{i=1}\sum}\overset{K-1}{\underset{j=1}\sum}{\bigl(\begin{smallmatrix}K+1\\ j\end{smallmatrix}\bigr)}i^j(-1)^{K+1-j}}{\bigl(\begin{smallmatrix}K+1\\ K\end{smallmatrix}\bigr)} i=1niK=(K+1K)nK+1+i=1nj=1K1(K+1j)ij(1)K+1j

直接运用这个公式实用性不足,通常需要提前在纸上化简,再进行运用,因此在次数较高时少有作用。

但说明了一个重要的结论: K K K次方数求和的结果可以被表示为一个 K + 1 K+1 K+1次函数。

证明:

∑ i = 1 n i K − ( i − 1 ) K = n K \overset{n}{\underset{i=1}\sum}i^K-(i-1)^K=n^K i=1niK(i1)K=nK

( i − 1 ) K (i-1)^K (i1)K用二项式定理展开:
= ∑ i = 1 n i K − ∑ j = 1 K ( K j ) i j ( − 1 ) K − j =\overset{n}{\underset{i=1}\sum}i^K-\overset{K}{\underset{j=1}\sum}\begin{pmatrix}K\\ j\end{pmatrix}i^j(-1)^{K-j} =i=1niKj=1K(Kj)ij(1)Kj

i i i K , K − 1 K,K-1 K,K1次项分离出来:

= ∑ i = 1 n i K − i K + ( K K − 1 ) i K − 1 − ∑ j = 1 K − 2 ( K j ) i j ( − 1 ) K − j =\overset{n}{\underset{i=1}\sum}i^K-i^K+\begin{pmatrix}K\\ K-1\end{pmatrix}i^{K-1}-\overset{K-2}{\underset{j=1}\sum}\begin{pmatrix}K\\ j\end{pmatrix}i^j(-1)^{K-j} =i=1niKiK+(KK1)iK1j=1K2(Kj)ij(1)Kj

和式的变换:
= ( K K − 1 ) ∑ i = 1 n i K − 1 − ∑ i = 1 n ∑ j = 1 K − 2 ( K j ) i j ( − 1 ) K − j =\begin{pmatrix}K\\ K-1\end{pmatrix}\overset{n}{\underset{i=1}\sum}i^{K-1}-\overset{n}{\underset{i=1}\sum}\overset{K-2}{\underset{j=1}\sum}\begin{pmatrix}K\\ j\end{pmatrix}i^j(-1)^{K-j} =(KK1)i=1niK1i=1nj=1K2(Kj)ij(1)Kj

因而有:
( K K − 1 ) ∑ i = 1 n i K − 1 − ∑ i = 1 n ∑ j = 1 K − 2 ( K j ) i j ( − 1 ) K − j = n K \begin{pmatrix}K\\ K-1\end{pmatrix}\overset{n}{\underset{i=1}\sum}i^{K-1}-\overset{n}{\underset{i=1}\sum}\overset{K-2}{\underset{j=1}\sum}\begin{pmatrix}K\\ j\end{pmatrix}i^j(-1)^{K-j}=n^K (KK1)i=1niK1i=1nj=1K2(Kj)ij(1)Kj=nK

整理一下:
∑ i = 1 n i K − 1 = n K + ∑ i = 1 n ∑ j = 1 K − 2 ( K j ) i j ( − 1 ) K − j ( K K − 1 ) \overset{n}{\underset{i=1}\sum}i^{K-1}=\frac{n^K+\overset{n}{\underset{i=1}\sum}\overset{K-2}{\underset{j=1}\sum}{\bigl(\begin{smallmatrix}K\\ j\end{smallmatrix}\bigr)}i^j(-1)^{K-j}}{\bigl(\begin{smallmatrix}K\\ K-1\end{smallmatrix}\bigr)} i=1niK1=(KK1)nK+i=1nj=1K2(Kj)ij(1)Kj

这就是说:
∑ i = 1 n i K = n K + 1 + ∑ i = 1 n ∑ j = 1 K − 1 ( K + 1 j ) i j ( − 1 ) K + 1 − j ( K + 1 K ) \overset{n}{\underset{i=1}\sum}i^{K}=\frac{n^{K+1}+\overset{n}{\underset{i=1}\sum}\overset{K-1}{\underset{j=1}\sum}{\bigl(\begin{smallmatrix}K+1\\ j\end{smallmatrix}\bigr)}i^j(-1)^{K+1-j}}{\bigl(\begin{smallmatrix}K+1\\ K\end{smallmatrix}\bigr)} i=1niK=(K+1K)nK+1+i=1nj=1K1(K+1j)ij(1)K+1j

QED.

拉格朗日插值法

前面说到: K K K次方数求和的结果可以被表示为一个 K + 1 K+1 K+1次函数。

K K K次方数求和可以用拉格朗日插值法处理,复杂度 O ( K ) O(K) O(K)

K次上升幂求和

K K K次普通幂求和一样, K K K次上升幂求和也可以有类似的做法,如斯特林反演,但是上升幂求和的性质太好了,完全不需要。
.

二次上升幂求和

∑ i = 1 n i 2 ‾ = ∑ i = 1 n i ( i + 1 ) = n ( n + 1 ) ( n + 2 ) 3 \overset{n}{\underset{i=1}\sum}i^{\overline 2}=\overset{n}{\underset{i=1}\sum}{i(i+1)}=\frac {n(n+1)(n+2)}3 i=1ni2=i=1ni(i+1)=3n(n+1)(n+2)

证明:
∑ i = 1 n i ( i + 1 ) = ∑ i = 1 n i 2 + ∑ i = 1 n i = n ( n + 1 ) ( 2 n + 1 ) 6 + n ( n + 1 ) 2 = n ( n + 1 ) ( n + 2 ) 3 \overset{n}{\underset{i=1}\sum}i(i+1)=\overset{n}{\underset{i=1}\sum}i^2+\overset{n}{\underset{i=1}\sum}i=\frac {n(n+1)(2n+1)}{6}+\frac {n(n+1)} 2=\frac {n(n+1)(n+2)}3 i=1ni(i+1)=i=1ni2+i=1ni=6n(n+1)(2n+1)+2n(n+1)=3n(n+1)(n+2)

K次上升幂求和

∑ i = 1 n i K ‾ = n K + 1 ‾ K + 1 \overset{n}{\underset{i=1}\sum}i^{\overline K}=\frac{n^{\overline{K+1}}}{K+1} i=1niK=K+1nK+1

证明:

第一想法是组合,但是组合不太好做。第二想法是归纳,但是归纳不太好做。于是又是伸缩级数:

∑ i = 1 n i K ‾ − ( i − 1 ) K ‾ = n K ‾ \overset{n}{\underset{i=1}\sum}i^{\overline K}-(i-1)^{\overline{K}}=n^{\overline K} i=1niK(i1)K=nK
∑ i = 1 n i K − 1 ‾ ( i + k − 1 ) − i K − 1 ‾ ( i − 1 ) = n K ‾ \overset{n}{\underset{i=1}\sum}i^{\overline{K-1}}(i+k-1)-i^{\overline {K-1}}(i-1)=n^{\overline K} i=1niK1(i+k1)iK1(i1)=nK
K ∑ i = 1 n i K − 1 ‾ = n K ‾ K\overset{n}{\underset{i=1}\sum}i^{\overline{K-1}}=n^{\overline K} Ki=1niK1=nK
∑ i = 1 n i K − 1 ‾ = n K ‾ K \overset{n}{\underset{i=1}\sum}i^{\overline{K-1}}=\frac {n^{\overline K}}{K} i=1niK1=KnK

于是有:
∑ i = 1 n i K ‾ = n K + 1 ‾ K + 1 \overset{n}{\underset{i=1}\sum}i^{\overline{K}}=\frac {n^{\overline {K+1}}}{K+1} i=1niK=K+1nK+1

QED.

复杂度 O ( K ) O(K) O(K)

K次方倒数求和

调和级数

∑ n i = 1 1 i \underset{i=1}{\overset{n}{\sum}}\frac 1i i=1ni1称为调和级数。

公式:
∑ n i = 1 1 i ≈ ln ⁡ ( n + 1 ) + γ = O ( log ⁡ n ) \underset{i=1}{\overset{n}{\sum}}\frac 1i\approx \ln(n+1)+γ=O(\log n) i=1ni1ln(n+1)+γ=O(logn)
其中 γ γ γ表示欧拉-马歇罗尼常数,约为0.5772156649。

要注意到公式是极限意义下的,因此只有在 n n n很大时才可以使用公式,在 n n n小的时候可以直接计算。
复杂度 O ( 1 ) O(1) O(1)

∑ n i = 1 1 i K \underset{i=1}{\overset{n}{\sum}}\frac 1{i^K} i=1niK1情况较复杂,但我们知道:
∑ + ∞ i = 1 1 i 2 = π 2 6 \underset{i=1}{\overset{+\infty}{\sum}}\frac 1{i^2}=\frac {\pi^2}{6} i=1+i21=6π2

K次上升幂倒数求和

二次上升幂倒数求和

∑ n i = 1 1 i ( i + 1 ) = 1 − 1 n + 1 \underset{i=1}{\overset{n}{\sum}}\frac 1{i(i+1)}=1-\frac 1{n+1} i=1ni(i+1)1=1n+11

引理: 1 i ( i + 1 ) = 1 i − 1 i − 1 \frac{1}{i(i+1)}=\frac 1 i-\frac 1{i-1} i(i+1)1=i1i11

证明显而易见。

类二次上升幂倒数求和

∑ n i = 1 1 i ( i + k ) = 1 k ( ∑ k i = 1 1 i − ∑ n + k i = n + 1 1 i ) \underset{i=1}{\overset{n}{\sum}}\frac 1{i(i+k)}=\frac 1k\left(\underset{i=1}{\overset{k}{\sum}}\frac 1i-\underset{i=n+1}{\overset{n+k}{\sum}}\frac 1i\right) i=1ni(i+k)1=k1(i=1ki1i=n+1n+ki1)

引理:
1 i ( i + k ) = 1 k ( 1 i − 1 i + k ) \frac 1{i(i+k)}=\frac 1k\left(\frac 1i-\frac 1{i+k}\right) i(i+k)1=k1(i1i+k1)

证明显然。

时间复杂度 O ( 1 ) O(1) O(1)

K次上升幂倒数求和

∑ n i = 1 1 i K ‾ = 1 K − 1 ( 1 1 K − 1 ‾ − 1 ( n + 1 ) K − 1 ‾ ) \underset{i=1}{\overset{n}{\sum}}\frac 1{i^{\overline{K}}}=\frac 1{K-1}\left(\frac 1{1^{\overline{K-1}}}-\frac{1}{(n+1)^{\overline{K-1}}}\right) i=1niK1=K11(1K11(n+1)K11)

证明还是伸缩级数(伸缩级数杀疯了):
1 1 K ‾ + ∑ n i = 2 1 i K ‾ − 1 ( i − 1 ) K ‾ = 1 n K ‾ \frac 1{1^{\overline{K}}}+\underset{i=2}{\overset{n}{\sum}}\frac 1{i^{\overline K}}-\frac{1}{(i-1)^{\overline{K}}}=\frac{1}{n^{\overline{K}}} 1K1+i=2niK1(i1)K1=nK1
之所以不从第一项开始求和,是为了规避分母为0的情况,也可以认为伸缩级数求和起点改变。

∑ n i = 2 1 i K ‾ − 1 ( i − 1 ) K ‾ = 1 n K ‾ − 1 1 K ‾ \underset{i=2}{\overset{n}{\sum}}\frac 1{i^{\overline K}}-\frac{1}{(i-1)^{\overline{K}}}=\frac{1}{n^{\overline{K}}}-\frac 1{1^{\overline{K}}} i=2niK1(i1)K1=nK11K1

现在处理左边:

∑ n i = 2 i − 1 ( i − 1 ) ⋅ i K ‾ − i + K − 1 ( i − 1 ) ⋅ i K ‾ \underset{i=2}{\overset{n}{\sum}}\frac{i-1}{(i-1)\cdot i^{\overline{K}}}-\frac{i+K-1}{(i-1)\cdot{i^{\overline{K}}}} i=2n(i1)iKi1(i1)iKi+K1
= ∑ n i = 2 1 i K ‾ ⋅ ( i − 1 i − 1 − i + K − 1 i − 1 ) =\underset{i=2}{\overset{n}{\sum}}\frac 1{i^{\overline{K}}}\cdot \left(\frac {i-1}{i-1}-\frac{i+K-1}{i-1}\right) =i=2niK1(i1i1i1i+K1)
= − K ∑ n i = 2 1 i K ‾ ⋅ 1 i − 1 =-K\underset{i=2}{\overset{n}{\sum}}\frac 1{i^{\overline{K}}}\cdot\frac{1}{i-1} =Ki=2niK1i11
= − K ∑ n i = 2 1 ( i − 1 ) K + 1 ‾ =-K\underset{i=2}{\overset{n}{\sum}}\frac{1}{(i-1)^{\overline{K+1}}} =Ki=2n(i1)K+11

左右相等:
− K ∑ n i = 2 1 ( i − 1 ) K + 1 ‾ = 1 n K ‾ − 1 1 K ‾ -K\underset{i=2}{\overset{n}{\sum}}\frac{1}{(i-1)^{\overline{K+1}}}=\frac{1}{n^{\overline{K}}}-\frac 1{1^{\overline{K}}} Ki=2n(i1)K+11=nK11K1
∑ n i = 2 1 ( i − 1 ) K + 1 ‾ = − 1 n K ‾ − 1 1 K ‾ K \underset{i=2}{\overset{n}{\sum}}\frac{1}{(i-1)^{\overline{K+1}}}=-\frac{\frac{1}{n^{\overline{K}}}-\frac 1{1^{\overline{K}}}}{K} i=2n(i1)K+11=KnK11K1

这就是说:
∑ n i = 1 1 i K ‾ = 1 K − 1 ( 1 1 K − 1 ‾ − 1 ( n + 1 ) K − 1 ‾ ) \underset{i=1}{\overset{n}{\sum}}\frac{1}{i^{\overline{K}}}=\frac 1{K-1}\left(\frac 1{1^{\overline{K-1}}}-\frac{1}{(n+1)^{\overline{K-1}}}\right) i=1niK1=K11(1K11(n+1)K11)

QED.

时间复杂度 O ( K ) O(K) O(K)

类K次上升幂求和

定义符号 x ( n ‾ + k ) = ∏ n − 1 i = 0 ( x + k ⋅ i ) x^{\left(\overline{n}+k\right)}=\underset{i=0}{\overset{n-1}{\prod}}(x+k\cdot i) x(n+k)=i=0n1(x+ki),其中 k k k是一固定的常数,这为我们的推理提供很大的方便。我们可以简记为 x ( n ‾ ) x^{(\overline{n})} x(n)

也就会有 x ( n ‾ + f ) = ∏ n − 1 i = 0 ( x + f ( i ) ) x^{\left(\overline{n}+f\right)}=\underset{i=0}{\overset{n-1}{\prod}}(x+f(i)) x(n+f)=i=0n1(x+f(i)),也可以简记为 x ( n ‾ ) x^{(\overline n)} x(n)

广义伸缩级数

探索类 K K K次上升幂求和问题,使用伸缩级数是不太行的了,我们用广义伸缩级数:

∑ r i = l f ( i ) − f ( i − k ) = ∑ r i = r − k + 1 f ( i ) − ∑ l − 1 i = l − k f ( i ) \underset{i=l}{\overset{r}{\sum}}f(i)-f(i-k)=\underset{i=r-k+1}{\overset{r}{\sum}}f(i)-\underset{i=l-k}{\overset{l-1}{\sum}}f(i) i=lrf(i)f(ik)=i=rk+1rf(i)i=lkl1f(i)

类K次上升幂求和

∑ n i = 1 i ( K ‾ ) = 1 c ⋅ ( K + 1 ) ( ∑ n i = n − c + 1 i ( K + 1 ‾ ) − ∑ 0 i = 1 − c i ( K + 1 ‾ ) ) \underset{i=1}{\overset{n}{\sum}}i^{\left(\overline {K} \right)}=\frac{1}{c\cdot (K+1)}\left(\underset{i=n-c+1}{\overset{n}{\sum}}i^{\left(\overline {K+1}\right)}-\underset{i=1-c}{\overset{0}{\sum}}i^{\left(\overline{K+1}\right)}\right) i=1ni(K)=c(K+1)1(i=nc+1ni(K+1)i=1c0i(K+1))

其中 n ( x ‾ ) = n ( x ‾ + c ) n^{(\overline x)}=n^{(\overline x+c)} n(x)=n(x+c)

证明:

根据广义伸缩级数:
∑ n i = 1 i ( K ‾ ) − ( i − c ) ( K ‾ ) = ∑ n i = n − c + 1 i ( K ‾ ) − ∑ 0 i = 1 − c i ( K ‾ ) \underset{i=1}{\overset{n}{\sum}}i^{\left(\overline K \right)}-(i-c)^{\left(\overline{K}\right)}=\underset{i=n-c+1}{\overset{n}{\sum}}i^{\left(\overline K\right)}-\underset{i=1-c}{\overset{0}{\sum}}i^{\left(\overline{K}\right)} i=1ni(K)(ic)(K)=i=nc+1ni(K)i=1c0i(K)

研究左边:
= ∑ n i = 1 ( i + c ( K − 1 ) ) i ( K − 1 ‾ ) − ( i − c ) i ( K − 1 ‾ ) =\underset{i=1}{\overset{n}{\sum}}\left(i+c(K-1)\right)i^{\left(\overline {K-1} \right)}-(i-c)i^{\left(\overline{K-1}\right)} =i=1n(i+c(K1))i(K1)(ic)i(K1)
= ∑ n i = 1 c ⋅ K ⋅ i ( K − 1 ‾ ) =\underset{i=1}{\overset{n}{\sum}}c\cdot K\cdot i^{\left(\overline {K-1} \right)} =i=1ncKi(K1)
= c ⋅ K ∑ n i = 1 i ( K − 1 ‾ ) =c\cdot K\underset{i=1}{\overset{n}{\sum}}i^{\left(\overline {K-1} \right)} =cKi=1ni(K1)

左右相等,就是:
c ⋅ K ∑ n i = 1 i ( K − 1 ‾ ) = ∑ n i = n − c + 1 i ( K ‾ ) − ∑ 0 i = 1 − c i ( K ‾ ) c\cdot K\underset{i=1}{\overset{n}{\sum}}i^{\left(\overline {K-1} \right)}=\underset{i=n-c+1}{\overset{n}{\sum}}i^{\left(\overline K\right)}-\underset{i=1-c}{\overset{0}{\sum}}i^{\left(\overline{K}\right)} cKi=1ni(K1)=i=nc+1ni(K)i=1c0i(K)
∑ n i = 1 i ( k − 1 ‾ ) = 1 c ⋅ k ( ∑ n i = n − c + 1 i ( K ‾ ) − ∑ 0 i = 1 − c i ( K ‾ ) ) \underset{i=1}{\overset{n}{\sum}}i^{\left(\overline {k-1} \right)}=\frac{1}{c\cdot k}\left(\underset{i=n-c+1}{\overset{n}{\sum}}i^{\left(\overline K\right)}-\underset{i=1-c}{\overset{0}{\sum}}i^{\left(\overline{K}\right)}\right) i=1ni(k1)=ck1(i=nc+1ni(K)i=1c0i(K))

∑ n i = 1 i ( K ‾ ) = 1 c ⋅ ( K + 1 ) ( ∑ n i = n − c + 1 i ( K + 1 ‾ ) − ∑ 0 i = 1 − c i ( K + 1 ‾ ) ) \underset{i=1}{\overset{n}{\sum}}i^{\left(\overline {K} \right)}=\frac{1}{c\cdot (K+1)}\left(\underset{i=n-c+1}{\overset{n}{\sum}}i^{\left(\overline {K+1}\right)}-\underset{i=1-c}{\overset{0}{\sum}}i^{\left(\overline{K+1}\right)}\right) i=1ni(K)=c(K+1)1(i=nc+1ni(K+1)i=1c0i(K+1))

QED.

时间复杂度 O ( c ⋅ K ) O\left( c\cdot K\right) O(cK)

类K次上升幂倒数求和

∑ n i = 1 1 i ( K ‾ ) = ∑ n + c i = n + 1 1 i ( K − 1 ‾ ) − ∑ c i = 1 1 i ( K − 1 ‾ ) \underset{i=1}{\overset{n}{\sum}}\frac{1}{i^{\left(\overline K\right)}}=\underset{i=n+1}{\overset{n+c}{\sum}}\frac{1}{i^{\left(\overline{K-1}\right)}}-\underset{i=1}{\overset{c}{\sum}}\frac{1}{i^{\left(\overline{K-1}\right)}} i=1ni(K)1=i=n+1n+ci(K1)1i=1ci(K1)1

其中 n ( x ‾ ) = n ( x ‾ + c ) n^{(\overline x)}=n^{(\overline x+c)} n(x)=n(x+c)

证明一下:

根据广义伸缩级数:
∑ n i = c + 1 1 i ( K ‾ ) − 1 ( i − c ) ( K ‾ ) = ∑ n i = n − c + 1 1 i ( K ‾ ) − ∑ c i = 1 1 i ( K ‾ ) \underset{i=c+1}{\overset{n}{\sum}}\frac{1}{i^{\left(\overline K\right)}}-\frac{1}{(i-c)^{\left(\overline K\right)}}=\underset{i=n-c+1}{\overset{n}{\sum}}\frac 1{i^{\left(\overline K\right)}}-\underset{i=1}{\overset{c}{\sum}}\frac{1}{i^{\left(\overline K\right)}} i=c+1ni(K)1(ic)(K)1=i=nc+1ni(K)1i=1ci(K)1

研究左边:
= ∑ n i = c + 1 1 ( i + c ( K − 1 ) ) ⋅ i ( K − 1 ‾ ) − 1 ( i − c ) ⋅ i ( K − 1 ‾ ) =\underset{i=c+1}{\overset{n}{\sum}}\frac{1}{(i+c(K-1))\cdot i^{\left(\overline {K-1}\right)}}-\frac{1}{(i-c)\cdot i^{\left(\overline {K-1}\right)}} =i=c+1n(i+c(K1))i(K1)1(ic)i(K1)1
= ∑ n i = c + 1 1 i ( K − 1 ‾ ) ( 1 ( i + c ( K − 1 ) ) − 1 ( i − c ) ) =\underset{i=c+1}{\overset{n}{\sum}} \frac{1}{i^{\left(\overline {K-1}\right)}}\left(\frac{1}{(i+c(K-1))}-\frac{1}{(i-c)}\right) =i=c+1ni(K1)1((i+c(K1))1(ic)1)
= ∑ n i = c + 1 1 i ( K − 1 ‾ ) ( 1 ( i + c ( K − 1 ) ) − 1 ( i − c ) ) =\underset{i=c+1}{\overset{n}{\sum}} \frac{1}{i^{\left(\overline {K-1}\right)}}\left(\frac{1}{(i+c(K-1))}-\frac{1}{(i-c)}\right) =i=c+1ni(K1)1((i+c(K1))1(ic)1)
= ∑ n i = c + 1 1 i ( K − 1 ‾ ) ( − c ⋅ K ( i + c ( K − 1 ) ) ( i − c ) ) =\underset{i=c+1}{\overset{n}{\sum}} \frac{1}{i^{\left(\overline {K-1}\right)}}\left(\frac{-c\cdot K}{\left(i+c(K-1)\right)(i-c)}\right) =i=c+1ni(K1)1((i+c(K1))(ic)cK)
= − c ⋅ K ∑ n i = c + 1 1 ( i − c ) ( K + 1 ‾ ) =-c\cdot K\underset{i=c+1}{\overset{n}{\sum}} \frac{1}{(i-c)^{\left(\overline {K+1}\right)}} =cKi=c+1n(ic)(K+1)1

左右相等:

− c ⋅ K ∑ n i = c + 1 1 ( i − c ) ( K + 1 ‾ ) = ∑ n i = n − c + 1 1 i ( K ‾ ) − ∑ c i = 1 1 i ( K ‾ ) -c\cdot K\underset{i=c+1}{\overset{n}{\sum}} \frac{1}{(i-c)^{\left(\overline {K+1}\right)}}=\underset{i=n-c+1}{\overset{n}{\sum}}\frac 1{i^{\left(\overline K\right)}}-\underset{i=1}{\overset{c}{\sum}}\frac{1}{i^{\left(\overline K\right)}} cKi=c+1n(ic)(K+1)1=i=nc+1ni(K)1i=1ci(K)1
∑ n i = c + 1 1 ( i − c ) ( K + 1 ‾ ) = 1 c ⋅ K ( ∑ c i = 1 1 i ( K ‾ ) − ∑ n i = n − c + 1 1 i ( K ‾ ) ) \underset{i=c+1}{\overset{n}{\sum}} \frac{1}{(i-c)^{\left(\overline {K+1}\right)}}=\frac{1}{c\cdot K}{\left(\underset{i=1}{\overset{c}{\sum}}\frac{1}{i^{\left(\overline K\right)}}-\underset{i=n-c+1}{\overset{n}{\sum}}\frac 1{i^{\left(\overline K\right)}}\right)} i=c+1n(ic)(K+1)1=cK1(i=1ci(K)1i=nc+1ni(K)1)

即:
∑ n − c i = 1 1 i ( K + 1 ‾ ) = 1 c ⋅ K ( ∑ c i = 1 1 i ( K ‾ ) − ∑ n i = n − c + 1 1 i ( K ‾ ) ) \underset{i=1}{\overset{n-c}{\sum}} \frac{1}{i^{\left(\overline {K+1}\right)}}=\frac{1}{c\cdot K}{\left(\underset{i=1}{\overset{c}{\sum}}\frac{1}{i^{\left(\overline K\right)}}-\underset{i=n-c+1}{\overset{n}{\sum}}\frac 1{i^{\left(\overline K\right)}}\right)} i=1nci(K+1)1=cK1(i=1ci(K)1i=nc+1ni(K)1)
∑ n i = 1 1 i ( K ‾ ) = 1 c ⋅ ( K − 1 ) ( ∑ c i = 1 1 i ( K − 1 ‾ ) − ∑ n + c i = n + 1 1 i ( K − 1 ‾ ) ) \underset{i=1}{\overset{n}{\sum}} \frac{1}{i^{\left(\overline {K}\right)}}=\frac{1}{c\cdot (K-1)}{\left(\underset{i=1}{\overset{c}{\sum}}\frac{1}{i^{\left(\overline {K-1}\right)}}-\underset{i=n+1}{\overset{n+c}{\sum}}\frac 1{i^{\left(\overline {K-1}\right)}}\right)} i=1ni(K)1=c(K1)1(i=1ci(K1)1i=n+1n+ci(K1)1)

QED.

时间复杂度 O ( c ⋅ K ) O(c\cdot K) O(cK)

三符号m长序列问题

计算 ⨁ n i = 1 ⨂ m j = 1 ( a j ⊙ i ) \underset{i=1}{\overset{n}\bigoplus} \underset{j=1}{\overset{m}\bigotimes}(a_j \odot i) i=1nj=1m(aji)

这里只讨论 ⊕ , ⊗ , ⊙ \oplus,\otimes,\odot ,,为加法和乘法的情况的做法。

  • ∑ n i = 1 ∑ m j = 1 a j + i \underset{i=1}{\overset{n}\sum} \underset{j=1}{\overset{m}\sum}a_j + i i=1nj=1maj+i :做法显然
  • ∏ n i = 1 ∑ m j = 1 a j + i \underset{i=1}{\overset{n}\prod} \underset{j=1}{\overset{m}\sum}a_j + i i=1nj=1maj+i 原式 = ∏ n i = 1 s + m ⋅ i = ln ⁡ ( e ∏ n i = 1 s + m ⋅ i ) = ln ⁡ ( ∑ n i = 1 e s + m ⋅ i ) = ln ⁡ ( e s ∑ n i = 1 ( e m ) i ) = ln ⁡ ( e s ⋅ e n m − 1 e m − 1 ) 原式=\underset{i=1}{\overset{n}\prod} s+m\cdot i=\ln \left(e^{\underset{i=1}{\overset{n}\prod} s+m\cdot i}\right)=\ln \left(\underset{i=1}{\overset{n}\sum} e^{s+m\cdot i}\right)=\ln \left(e^s\underset{i=1}{\overset{n}\sum} \left(e^m\right)^i\right)=\ln \left(e^s\cdot \frac{e^{nm}-1}{e^m-1}\right) 原式=i=1ns+mi=ln(ei=1ns+mi)=ln(i=1nes+mi)=ln(esi=1n(em)i)=ln(esem1enm1),快速幂即可
  • ∑ n i = 1 ∏ m j = 1 a j + i \underset{i=1}{\overset{n}\sum} \underset{j=1}{\overset{m}\prod}a_j + i i=1nj=1maj+i :拉格朗日插值法
  • ∑ n i = 1 ∑ m j = 1 a j × i \underset{i=1}{\overset{n}\sum} \underset{j=1}{\overset{m}\sum}a_j \times i i=1nj=1maj×i :做法显然
  • ∏ n i = 1 ∏ m j = 1 a j + i \underset{i=1}{\overset{n}\prod} \underset{j=1}{\overset{m}\prod}a_j + i i=1nj=1maj+i 原式 = ln ⁡ ( e ∏ n i = 1 ∏ m j = 1 a j + i ) = ln ⁡ ( ∑ n i = 1 ∑ m j = 1 e a j + i ) = ln ⁡ ( ∑ m j = 1 e a j ∑ n i = 1 e i ) = ln ⁡ ( e n − 1 e − 1 ∑ m j = 1 e a j ) 原式=\ln\left(e^{\underset{i=1}{\overset{n}\prod} \underset{j=1}{\overset{m}\prod}a_j + i}\right)=\ln\left(\underset{i=1}{\overset{n}\sum} \underset{j=1}{\overset{m}\sum}e^{a_j + i}\right)=\ln\left( \underset{j=1}{\overset{m}\sum}e^{a_j }\underset{i=1}{\overset{n}\sum}e^i\right)=\ln\left( \frac{e^n-1}{e-1}\underset{j=1}{\overset{m}\sum}e^{a_j }\right) 原式=ln(ei=1nj=1maj+i)=ln(i=1nj=1meaj+i)=ln(j=1meaji=1nei)=ln(e1en1j=1meaj),快速幂
  • ∏ n i = 1 ∑ m j = 1 a j × i \underset{i=1}{\overset{n}\prod} \underset{j=1}{\overset{m}\sum}a_j \times i i=1nj=1maj×i:通过快速阶乘可以做到 O ( m a x ( m , n log ⁡ n ) ) O\left(max(m,\sqrt n\log n)\right) O(max(m,n logn))
  • ∏ n i = 1 ∏ m j = 1 a j × i \underset{i=1}{\overset{n}\prod} \underset{j=1}{\overset{m}\prod}a_j \times i i=1nj=1maj×i 原式 = ∏ m j = 1 a j ∏ n i = 1 i 原式=\underset{j=1}{\overset{m}\prod}a_j\underset{i=1}{\overset{n}\prod}i 原式=j=1maji=1ni,通过快速阶乘可以做到 O ( m a x ( m , n log ⁡ n ) ) O\left(max(m,\sqrt n\log n)\right) O(max(m,n logn))

其他多项式问题

其他一些问题,往往采用科技来实现。

∑ n i = 1 1 ∏ m j = 1 ( a j + i ) \underset{i=1}{\overset{n}\sum} \frac{1}{\underset{j=1}{\overset{m}\prod}(a_j+i)} i=1nj=1m(aj+i)1,可用多项式求逆。
如计算 n n n个数中选 k k k个数的乘积之和,可用分治NTT。
如任意多项式函数都可用拉格朗日插值法,但也需考虑到原始点值是否容易计算。

其他较复杂问题,不再一一讨论。

后记

于是皆大欢喜。

你可能感兴趣的:(数论)