第二章 和式
2.1 记号
2.1.1 省略号与一般和式
- 省略号的使用与局限
省略号 ... 表示项之间的可识别模式。例如:
1+2+3+⋯+n
1 + 2 + 3 + \cdots + n
1+2+3+⋯+n
表示前 nnn 个正整数之和。
若模式不明确,表达式无意义。 例如:
1+7+⋯+41.7
1 + 7 + \cdots + 41.7
1+7+⋯+41.7
在没有上下文的情况下无法确定其规律。
当模式清晰时,无需过度指定。 写成 1+2+⋯+n1 + 2 + \cdots + n1+2+⋯+n 已足够清楚,甚至可简写为 1+⋯+n1 + \cdots + n1+⋯+n。
- 一般和式与项的定义
考虑一般形式的和:
a1+a2+⋯+an(2.1)
a_1 + a_2 + \cdots + a_n \tag{2.1}
a1+a2+⋯+an(2.1)
其中每个 aka_kak 是用某种方式定义的一个数。
和式的每个元素 aka_kak 称为项(term)。项常常隐含一个容易领会的模式。在这样的情形下,有时必须把它们写成展开的形式,以使意义清楚明白。
例如,设想:
1+2+⋯+2n−1
1 + 2 + \cdots + 2^{n-1}
1+2+⋯+2n−1
若要表示 nnn 项之和,而不是 2n−12^{n-1}2n−1 项之和,就应该更明确地写成:
20+21+⋯+2n−1
2^0 + 2^1 + \cdots + 2^{n-1}
20+21+⋯+2n−1
2.1.2 Σ符号
省略号“…”可能含糊不清且有点冗长。另一种方式是使用有确定界限的表达形式:
∑k=1nak(2.2)
\sum_{k=1}^n a_k \tag{2.2}
k=1∑nak(2.2)
称为 Σ 符号,因使用希腊字母 Σ(大写 σ)。
这个记号表示:**求和指标 kkk 取从 1 到 nnn 之间的所有整数值(含端点),并对对应的 aka_kak 求和。**换句话说,“对 kkk 从 1 到 nnn 求和”。
Σ 后面的量(如 aka_kak)称为被加数(summand)。
指标变量 kkk 与 Σ 符号密切相关,aka_kak 中的 kkk 与 Σ 外出现的 kkk 无关。**任何其他字母都可以替代这里的 kkk 而不会改变 (2.2) 的含义。
常常会使用字母 iii(似乎是因为它代表"指标"index),但我们一般还是对 kkk 求和,因为 iii 另有重任要表示 −1\sqrt{-1}−1。
不应使用 aaa 或 nnn 来替代式 (2.2) 中的 kkk 作为指标变量,因为那些字母是"自由变量",在 Σ 之外是有意义的。
一种推广的 Σ 符号比有确定界限的形式更加有用:我们直接把一个或多个条件写在 Σ 的下面,以此指定求和所应该取的指标集。
例如,(2.1) 和 (2.2) 中的和式也可以写成:
∑1≤k≤nak(2.3)
\sum_{1 \leq k \leq n} a_k \tag{2.3}
1≤k≤n∑ak(2.3)
在这个例子中,新形式与 (2.2) 没有太大区别,但一般形式允许我们对不限于连续整数的指标求和。
- 优点一:清晰
示例1:正奇数的平方和
不超过 100 的所有正奇数的平方和可表示为:
∑1≤k<100k 为奇数k2
\sum_{\substack{1 \leq k < 100 \\ k\ \text{为奇数}}} k^2
1≤k<100k 为奇数∑k2
而其有确定界限的等价形式:
∑k=049(2k+1)2
\sum_{k=0}^{49} (2k+1)^2
k=0∑49(2k+1)2
更加繁琐不便,且不清晰。
示例2:素数的倒数之和
1 与 NNN 之间所有素数的倒数之和是:
∑p≤Np 为素数1p
\sum_{\substack{p \leq N \\ p\ \text{为素数}}} \frac{1}{p}
p≤Np 为素数∑p1
而有确定界限的形式则需要写成:
∑k=1π(N)1pk
\sum_{k=1}^{\pi(N)} \frac{1}{p_k}
k=1∑π(N)pk1
其中 pkp_kpk 表示第 kkk 个素数,π(N)\pi(N)π(N) 是 ≤N\leq N≤N 的素数个数。
附带指出,这个和式给出了接近 NNN 的随机整数的不同素因子的近似平均个数,因为那些整数中大约有 1/p1/p1/p 个能被 ppp 整除。对于大的 NNN,它的值近似等于 lnlnN+M\ln \ln N + MlnlnN+M,其中
M≈0.261 497 212 847 642 783 755 426 838 608 695 859 051 566 6 M \approx 0.261\ 497\ 212\ 847\ 642\ 783\ 755\ 426\ 838\ 608\ 695\ 859\ 051\ 566\ 6 M≈0.261 497 212 847 642 783 755 426 838 608 695 859 051 566 6
是麦尔滕常数,lnx\ln xlnx 表示 xxx 的自然对数,而 lnlnx\ln \ln xlnlnx 表示 ln(lnx)\ln(\ln x)ln(lnx)。
优点二:容易变动
假设要将指标变量 kkk 改变成 k+1k+1k+1。
使用推广形式:
∑1≤k≤nak=∑1≤k+1≤nak+1
\sum_{1 \leq k \leq n} a_k = \sum_{1 \leq k+1 \leq n} a_{k+1}
1≤k≤n∑ak=1≤k+1≤n∑ak+1
很容易看出所做的变动,几乎不需要思考。
而对于有确定界限的形式:
∑k=1nak=∑k=0n−1ak+1
\sum_{k=1}^n a_k = \sum_{k=0}^{n-1} a_{k+1}
k=1∑nak=k=0∑n−1ak+1
不容易看出发生了什么变化,而且更容易犯错误。
- 当要陈述一个问题或表述一个结论时,常使用带有上下确定界限的 Σ;
- 当处理一个需要对指标变量做变换的和式时,则更愿意用在 Σ 下方列出关系的形式。
推广Σ的形式定义
形式上,我们将:
∑P(k)ak(2.4)
\sum_{P(k)} a_k \tag{2.4}
P(k)∑ak(2.4)
记为所有项 aka_kak 之和的缩写,其中 kkk 是满足给定性质 P(k)P(k)P(k) 的一个整数。("性质 P(k)P(k)P(k)"是关于 kkk 的任何一个为真或者为假的命题。)
我们暂时假定仅有有限多个满足 P(k)P(k)P(k) 的整数 kkk 使得 ak≠0a_k \neq 0ak=0;否则会有无穷多个非零的数相加,事情就会有点儿复杂。
在另一种极端情形,如果对所有的整数 kkk,P(k)P(k)P(k) 都不为真,我们就有一个"空的"和,任何空的和的值都定义为零。
- 错误用法案例
人们常常想要使用:
∑k=2n−1k(k−1)(n−k)
\sum_{k=2}^{n-1} k(k-1)(n-k)
k=2∑n−1k(k−1)(n−k)
而不是:
∑k=0nk(k−1)(n−k)
\sum_{k=0}^{n} k(k-1)(n-k)
k=0∑nk(k−1)(n−k)
因为在这个和式中 k=0,1k = 0, 1k=0,1 以及 nnn 的项都等于零。将 n−2n - 2n−2 项相加而不是将 n+1n + 1n+1 项相加往往更为有效。
但是不应该这样想,因为计算的有效性并不等同于理解的有效性!
我们会发现,保持求和指标的上下限尽可能简单大有裨益,因为当求和的界限简单时,处理起来要容易得多。
使用如 ∑k=2n−1\sum_{k=2}^{n-1}∑k=2n−1 这样的求和界限可能存在含糊不清的风险。
- 当 n=0n = 0n=0 或 n=1n = 1n=1 时,下限 k=2k = 2k=2 大于上限 n−1≤0n - 1 \leq 0n−1≤0,此时求和范围为空,但其含义在未明确定义时并不清晰。
- 相比之下,包含额外项但其值为零的和式不会带来问题,反而常常免除许多麻烦。
- 艾弗森约定
对于任意命题 PPP,定义:
[P]={1,如果 P 为真;0,如果 P 为假.
[P] =
\begin{cases}
1, & \text{如果 } P \text{ 为真}; \\
0, & \text{如果 } P \text{ 为假}.
\end{cases}
[P]={1,0,如果 P 为真;如果 P 为假.
例如:
[p 是素数]={1,p 是素数;0,p 不是素数.
[p\text{ 是素数}] =
\begin{cases}
1, & p\text{ 是素数}; \\
0, & p\text{ 不是素数}.
\end{cases}
[p 是素数]={1,0,p 是素数;p 不是素数.
利用艾弗森约定,我们可以将推广的Σ和式 (2.4) 重新写为:
∑kak[P(k)](2.5)
\sum_{k} a_k [P(k)] \tag{2.5}
k∑ak[P(k)](2.5)
- 这里求和指标 kkk 取所有整数,不再显式限制范围。
- 当 P(k)P(k)P(k) 为假时,[P(k)]=0[P(k)] = 0[P(k)]=0,因此 ak[P(k)]=0a_k [P(k)] = 0ak[P(k)]=0,该项对和式无贡献。
- 所有“有效项”自动被保留,无效项被自然过滤。
求和不再需要在Σ下方写条件,指标可以自由流动,极大简化代数操作。
有时 aka_kak 并非对所有整数 kkk 都有定义(例如 ak=1/ka_k = 1/kak=1/k 在 k=0k = 0k=0 时无定义)。
我们约定:当 P(k)P(k)P(k) 为假时,[P(k)]=0[P(k)] = 0[P(k)]=0,且
ak[P(k)]=0a_k [P(k)] = 0ak[P(k)]=0,即使 aka_kak 本身无定义。
这一约定规避了未定义表达式的问题。
示例
利用艾弗森约定,可将不超过 NNN 的素数倒数之和写为:
∑p[p 是素数][p≤N]/p
\sum_{p} [p\text{ 是素数}] [p \leq N] / p
p∑[p 是素数][p≤N]/p
- 当 p=0p = 0p=0 时,[0 是素数]=0[0\text{ 是素数}] = 0[0 是素数]=0,因此项为 0/0×00 / 0 \times 00/0×0,但根据约定,整个项为 0。
- 不会出现除以零的问题,因为 [P(k)]=0[P(k)] = 0[P(k)]=0 强制该项为零。
2.2 和式与递归式
和式与递归式之间存在密切关系,可以使用递推式求和式的值。
考虑和式:
Sn=∑k=0nak
S_n = \sum_{k=0}^n a_k
Sn=k=0∑nak
它可以被看作一个定义在 n≥0n \geq 0n≥0 上的序列,满足递归关系:
S0=a0;Sn=Sn−1+an,n>0(2.6)
S_0 = a_0; \quad S_n = S_{n-1} + a_n, \quad n > 0 \tag{2.6}
S0=a0;Sn=Sn−1+an,n>0(2.6)
这种“和式 ⇔ 递归式”的转换,使我们能借用第1章中求解递归式的封闭形式方法来计算和式。
2.2.1 和式->递归式
[!IMPORTANT]
标准递推式:
R0=α;Rn=Rn−1+β+γn,n>0 R_0 = \alpha; \quad R_n = R_{n-1} + \beta + \gamma n, \quad n > 0 R0=α;Rn=Rn−1+β+γn,n>0只能处理被加数是线性函数的和式,即:
∑k=0n(β+γk) \sum_{k=0}^n (\beta + \gamma k) k=0∑n(β+γk)
考虑如下形式的递归式:
R0=α;
R_0 = \alpha;
R0=α;
Rn=Rn−1+β+γn,n>0(2.7)
R_n = R_{n-1} + \beta + \gamma n, \quad n > 0 \tag{2.7}
Rn=Rn−1+β+γn,n>0(2.7)
这是形如 ak=β+γka_k = \beta + \gamma kak=β+γk 的和式的递归形式。
通解和成套方法
我们尝试将通解形式
Rn=A(n)α+B(n)β+C(n)γ(2.8)
R_n = A(n)\alpha + B(n)\beta + C(n)\gamma \tag{2.8}
Rn=A(n)α+B(n)β+C(n)γ(2.8)
中的 RnR_nRn 替换为简单的已知函数,通过匹配递推关系 (2.7) 反推出对应的参数 α,β,γ\alpha, \beta, \gammaα,β,γ,从而确定系数函数 A(n),B(n),C(n)A(n), B(n), C(n)A(n),B(n),C(n)。
令 Rn=1R_n = 1Rn=1(常数函数)
- 此时对所有 nnn,有 Rn=1R_n = 1Rn=1,且 R0=1⇒α=1R_0 = 1 \Rightarrow \alpha = 1R0=1⇒α=1。
- 递推式右边:
Rn−1+β+γn=1+β+γn R_{n-1} + \beta + \gamma n = 1 + \beta + \gamma n Rn−1+β+γn=1+β+γn - 左边为 Rn=1R_n = 1Rn=1,故要求:
1=1+β+γn⇒β+γn=0对所有 n>0 1 = 1 + \beta + \gamma n \quad \Rightarrow \quad \beta + \gamma n = 0 \quad \text{对所有 } n > 0 1=1+β+γn⇒β+γn=0对所有 n>0 - 唯一可能:β=0,γ=0\beta = 0, \gamma = 0β=0,γ=0。
代入 (2.8):
1=A(n)⋅1+B(n)⋅0+C(n)⋅0⇒A(n)=1
1 = A(n) \cdot 1 + B(n) \cdot 0 + C(n) \cdot 0 \Rightarrow A(n) = 1
1=A(n)⋅1+B(n)⋅0+C(n)⋅0⇒A(n)=1
得到:
A(n)=1
A(n) = 1
A(n)=1
令 Rn=nR_n = nRn=n(线性函数)
- 此时 R0=0⇒α=0R_0 = 0 \Rightarrow \alpha = 0R0=0⇒α=0。
- 递推式右边:
Rn−1+β+γn=(n−1)+β+γn R_{n-1} + \beta + \gamma n = (n-1) + \beta + \gamma n Rn−1+β+γn=(n−1)+β+γn - 左边为 Rn=nR_n = nRn=n,故要求:
n=(n−1)+β+γn n = (n-1) + \beta + \gamma n n=(n−1)+β+γn
整理得:
n=n−1+β+γn⇒0=−1+β+γn n = n - 1 + \beta + \gamma n \Rightarrow 0 = -1 + \beta + \gamma n n=n−1+β+γn⇒0=−1+β+γn - 对所有 n>0n > 0n>0 成立,必须有:
γ=0,β=1 \gamma = 0, \quad \beta = 1 γ=0,β=1
代入 (2.8):
n=A(n)⋅0+B(n)⋅1+C(n)⋅0⇒B(n)=n
n = A(n) \cdot 0 + B(n) \cdot 1 + C(n) \cdot 0 \Rightarrow B(n) = n
n=A(n)⋅0+B(n)⋅1+C(n)⋅0⇒B(n)=n
得到:
B(n)=n
B(n) = n
B(n)=n
令 Rn=n2R_n = n^2Rn=n2(平方函数)
- 此时 R0=02=0⇒α=0R_0 = 0^2 = 0 \Rightarrow \alpha = 0R0=02=0⇒α=0。
- 递推式右边:
Rn−1+β+γn=(n−1)2+β+γn=n2−2n+1+β+γn R_{n-1} + \beta + \gamma n = (n-1)^2 + \beta + \gamma n = n^2 - 2n + 1 + \beta + \gamma n Rn−1+β+γn=(n−1)2+β+γn=n2−2n+1+β+γn - 左边为 Rn=n2R_n = n^2Rn=n2,故要求:
n2=n2−2n+1+β+γn n^2 = n^2 - 2n + 1 + \beta + \gamma n n2=n2−2n+1+β+γn
两边减去 n2n^2n2:
0=−2n+1+β+γn 0 = -2n + 1 + \beta + \gamma n 0=−2n+1+β+γn
整理为:
(γ−2)n+(β+1)=0对所有 n>0 (\gamma - 2)n + (\beta + 1) = 0 \quad \text{对所有 } n > 0 (γ−2)n+(β+1)=0对所有 n>0 - 要使该式恒成立,系数必须为零:
γ−2=0⇒γ=2β+1=0⇒β=−1 \gamma - 2 = 0 \Rightarrow \gamma = 2 \\ \beta + 1 = 0 \Rightarrow \beta = -1 γ−2=0⇒γ=2β+1=0⇒β=−1
代入 (2.8):
n2=A(n)⋅0+B(n)⋅(−1)+C(n)⋅2=−B(n)+2C(n)
n^2 = A(n)\cdot 0 + B(n)\cdot (-1) + C(n)\cdot 2 = -B(n) + 2C(n)
n2=A(n)⋅0+B(n)⋅(−1)+C(n)⋅2=−B(n)+2C(n)
但我们已知 B(n)=nB(n) = nB(n)=n,代入得:
n2=−n+2C(n)⇒2C(n)=n2+n⇒C(n)=n2+n2
n^2 = -n + 2C(n) \Rightarrow 2C(n) = n^2 + n \Rightarrow C(n) = \frac{n^2 + n}{2}
n2=−n+2C(n)⇒2C(n)=n2+n⇒C(n)=2n2+n
得到:
C(n)=n(n+1)2
C(n) = \frac{n(n+1)}{2}
C(n)=2n(n+1)
我们已得:
A(n)=1,B(n)=n,C(n)=n(n+1)2
A(n) = 1, \quad B(n) = n, \quad C(n) = \frac{n(n+1)}{2}
A(n)=1,B(n)=n,C(n)=2n(n+1)
通解为:
Rn=α⋅1+β⋅n+γ⋅n(n+1)2
R_n = \alpha \cdot 1 + \beta \cdot n + \gamma \cdot \frac{n(n+1)}{2}
Rn=α⋅1+β⋅n+γ⋅2n(n+1)
现在验证它是否满足原始递推式:
Rn=Rn−1+β+γn
R_n = R_{n-1} + \beta + \gamma n
Rn=Rn−1+β+γn
计算右边:
Rn−1+β+γn=α+β(n−1)+γ⋅(n−1)n2+β+γn
R_{n-1} + \beta + \gamma n = \alpha + \beta(n-1) + \gamma \cdot \frac{(n-1)n}{2} + \beta + \gamma n
Rn−1+β+γn=α+β(n−1)+γ⋅2(n−1)n+β+γn
=α+βn−β+γ⋅n(n−1)2+β+γn
= \alpha + \beta n - \beta + \gamma \cdot \frac{n(n-1)}{2} + \beta + \gamma n
=α+βn−β+γ⋅2n(n−1)+β+γn
=α+βn+γ(n(n−1)2+n)=α+βn+γ⋅n2+n2
= \alpha + \beta n + \gamma \left( \frac{n(n-1)}{2} + n \right)
= \alpha + \beta n + \gamma \cdot \frac{n^2 + n}{2}
=α+βn+γ(2n(n−1)+n)=α+βn+γ⋅2n2+n
这正是 RnR_nRn 的表达式。
具体和式应用
我们想计算:
∑k=0n(a+bk)
\sum_{k=0}^n (a + b k)
k=0∑n(a+bk)
第一步:建立递归关系
设:
Sn=∑k=0n(a+bk)
S_n = \sum_{k=0}^n (a + b k)
Sn=k=0∑n(a+bk)
我们可以建立递归关系:
-
基础情况:当 n=0n = 0n=0 时,
S0=a+b⋅0=a S_0 = a + b \cdot 0 = a S0=a+b⋅0=a -
递推关系:当 n>0n > 0n>0 时,
Sn=Sn−1+(a+bn) S_n = S_{n-1} + (a + b n) Sn=Sn−1+(a+bn)
即:
Sn=Sn−1+a+bn S_n = S_{n-1} + a + b n Sn=Sn−1+a+bn
第二步:匹配标准递归式形式
将上述递归式与标准形式 (2.7) 对比:
R0=α;Rn=Rn−1+β+γn,n>0
R_0 = \alpha; \quad R_n = R_{n-1} + \beta + \gamma n, \quad n > 0
R0=α;Rn=Rn−1+β+γn,n>0
我们有:
- Rn=SnR_n = S_nRn=Sn
- α=a\alpha = aα=a(初始值)
- β=a\beta = aβ=a(常数项系数)
- γ=b\gamma = bγ=b(线性项系数)
第三步:应用通解公式
根据已求得的系数函数:
A(n)=1,B(n)=n,C(n)=n(n+1)2
A(n) = 1, \quad B(n) = n, \quad C(n) = \frac{n(n+1)}{2}
A(n)=1,B(n)=n,C(n)=2n(n+1)
代入通解:
Sn=α⋅A(n)+β⋅B(n)+γ⋅C(n)
S_n = \alpha \cdot A(n) + \beta \cdot B(n) + \gamma \cdot C(n)
Sn=α⋅A(n)+β⋅B(n)+γ⋅C(n)
Sn=a⋅1+a⋅n+b⋅n(n+1)2 S_n = a \cdot 1 + a \cdot n + b \cdot \frac{n(n+1)}{2} Sn=a⋅1+a⋅n+b⋅2n(n+1)
Sn=a+an+bn(n+1)2 S_n = a + a n + \frac{b n(n+1)}{2} Sn=a+an+2bn(n+1)
Sn=a(1+n)+bn(n+1)2 S_n = a(1 + n) + \frac{b n(n+1)}{2} Sn=a(1+n)+2bn(n+1)
Sn=a(n+1)+bn(n+1)2 S_n = a(n+1) + \frac{b n(n+1)}{2} Sn=a(n+1)+2bn(n+1)
第四步:提取公因子
Sn=(n+1)(a+bn2)
S_n = (n+1)\left(a + \frac{b n}{2}\right)
Sn=(n+1)(a+2bn)
或者写成:
∑k=0n(a+bk)=a(n+1)+bn(n+1)2
\sum_{k=0}^n (a + b k) = a(n+1) + \frac{b n(n+1)}{2}
k=0∑n(a+bk)=a(n+1)+2bn(n+1)
验证特殊情况
-
当 a=1,b=0a = 1, b = 0a=1,b=0 时:
∑k=0n1=n+1 \sum_{k=0}^n 1 = n+1 k=0∑n1=n+1
正确 -
当 a=0,b=1a = 0, b = 1a=0,b=1 时:
∑k=0nk=n(n+1)2 \sum_{k=0}^n k = \frac{n(n+1)}{2} k=0∑nk=2n(n+1)
正确
[!NOTE]
解题思路:
将和式转化为递归式
- 设 Sn=∑k=0nf(k)S_n = \sum_{k=0}^n f(k)Sn=∑k=0nf(k)
- 建立递归关系:Sn=Sn−1+f(n)S_n = S_{n-1} + f(n)Sn=Sn−1+f(n),S0=f(0)S_0 = f(0)S0=f(0)
识别递归式参数
- 将具体递归式与标准形式 Rn=Rn−1+β+γnR_n = R_{n-1} + \beta + \gamma nRn=Rn−1+β+γn 对比
- 确定参数 α,β,γ\alpha, \beta, \gammaα,β,γ
应用成套方法求通解
- 利用已知的系数函数:A(n)=1,B(n)=n,C(n)=n(n+1)2A(n) = 1, B(n) = n, C(n) = \frac{n(n+1)}{2}A(n)=1,B(n)=n,C(n)=2n(n+1)
- 代入通解公式:Sn=αA(n)+βB(n)+γC(n)S_n = \alpha A(n) + \beta B(n) + \gamma C(n)Sn=αA(n)+βB(n)+γC(n)
得到封闭形式
- 化简得到和式的闭形式解
[!IMPORTANT]
为什么可以直接套用
我们的标准递归式:
R0=α;Rn=Rn−1+β+γn,n>0 R_0 = \alpha; \quad R_n = R_{n-1} + \beta + \gamma n, \quad n > 0 R0=α;Rn=Rn−1+β+γn,n>0这是一个关于参数 α,β,γ\alpha, \beta, \gammaα,β,γ 的线性表达式。
通解形式:
Rn=A(n)α+B(n)β+C(n)γ R_n = A(n)\alpha + B(n)\beta + C(n)\gamma Rn=A(n)α+B(n)β+C(n)γ这表明 RnR_nRn 是参数 α,β,γ\alpha, \beta, \gammaα,β,γ 的线性组合。
由于递归式是线性的,我们可以利用叠加原理:
- 如果 Rn(1)R_n^{(1)}Rn(1) 对应参数 (α1,β1,γ1)(\alpha_1, \beta_1, \gamma_1)(α1,β1,γ1)
- 如果 Rn(2)R_n^{(2)}Rn(2) 对应参数 (α2,β2,γ2)(\alpha_2, \beta_2, \gamma_2)(α2,β2,γ2)
- 那么 c1Rn(1)+c2Rn(2)c_1 R_n^{(1)} + c_2 R_n^{(2)}c1Rn(1)+c2Rn(2) 对应参数 (c1α1+c2α2,c1β1+c2β2,c1γ1+c2γ2)(c_1\alpha_1 + c_2\alpha_2, c_1\beta_1 + c_2\beta_2, c_1\gamma_1 + c_2\gamma_2)(c1α1+c2α2,c1β1+c2β2,c1γ1+c2γ2)
我们选择三个简单的基底函数来确定系数:
基底函数 参数 确定的系数 Rn=1R_n = 1Rn=1 α=1,β=0,γ=0\alpha=1, \beta=0, \gamma=0α=1,β=0,γ=0 A(n)=1A(n) = 1A(n)=1 Rn=nR_n = nRn=n α=0,β=1,γ=0\alpha=0, \beta=1, \gamma=0α=0,β=1,γ=0 B(n)=nB(n) = nB(n)=n Rn=n2R_n = n^2Rn=n2 α=0,β=−1,γ=2\alpha=0, \beta=-1, \gamma=2α=0,β=−1,γ=2 C(n)=n(n+1)2C(n) = \frac{n(n+1)}{2}C(n)=2n(n+1) 因为:
- 任何满足该递归式的函数都可以表示为这三个基底的线性组合
- 系数函数 A(n), B(n), C(n) 只依赖于递归式的结构,而不依赖于具体的参数值
- 一旦确定了这三个系数函数,它们对所有同类型递归式都适用
这实际上是在求解一个线性算子的基底表示:
- 递归式定义了一个从参数空间 (α,β,γ)(\alpha, \beta, \gamma)(α,β,γ) 到解空间的线性映射
- A(n),B(n),C(n)A(n), B(n), C(n)A(n),B(n),C(n) 就是这个线性映射在标准基底下的表示
对于 Rn=5n+3R_n = 5n + 3Rn=5n+3:
- 可以分解为:Rn=3⋅1+5⋅n+0⋅n(n+1)2R_n = 3 \cdot 1 + 5 \cdot n + 0 \cdot \frac{n(n+1)}{2}Rn=3⋅1+5⋅n+0⋅2n(n+1)
- 对应参数:α=3,β=5,γ=0\alpha=3, \beta=5, \gamma=0α=3,β=5,γ=0
- 直接套用:Rn=3⋅A(n)+5⋅B(n)+0⋅C(n)=3⋅1+5⋅n=3+5nR_n = 3 \cdot A(n) + 5 \cdot B(n) + 0 \cdot C(n) = 3 \cdot 1 + 5 \cdot n = 3 + 5nRn=3⋅A(n)+5⋅B(n)+0⋅C(n)=3⋅1+5⋅n=3+5n
2.2.2 递归式->和式
引例:河内塔递归式
经典递归式:
T0=0;Tn=2Tn−1+1,n>0
T_0 = 0; \quad T_n = 2T_{n-1} + 1, \quad n > 0
T0=0;Tn=2Tn−1+1,n>0
两边同除 2n2^n2n:
Tn2n=Tn−12n−1+12n
\frac{T_n}{2^n} = \frac{T_{n-1}}{2^{n-1}} + \frac{1}{2^n}
2nTn=2n−1Tn−1+2n1
令 Sn=Tn/2nS_n = T_n / 2^nSn=Tn/2n,则:
S0=0;Sn=Sn−1+2−n,n>0
S_0 = 0; \quad S_n = S_{n-1} + 2^{-n}, \quad n > 0
S0=0;Sn=Sn−1+2−n,n>0
于是:
Sn=∑k=1n2−k
S_n = \sum_{k=1}^n 2^{-k}
Sn=k=1∑n2−k
注意:和式从 k=1k=1k=1 开始,因为递推从 n>0n>0n>0 开始,S1=2−1S_1 = 2^{-1}S1=2−1。
这是一个几何级数:
[!NOTE]
几何级数(Geometric Series)是各项之间具有固定比例关系的无穷级数。
一般形式
∑k=0∞ark=a+ar+ar2+ar3+⋯ \sum_{k=0}^{\infty} ar^k = a + ar + ar^2 + ar^3 + \cdots k=0∑∞ark=a+ar+ar2+ar3+⋯
其中:
- aaa:首项(first term)
- rrr:公比(common ratio)
有限几何级数
∑k=0nark=a+ar+ar2+⋯+arn \sum_{k=0}^{n} ar^k = a + ar + ar^2 + \cdots + ar^n k=0∑nark=a+ar+ar2+⋯+arn收敛条件
几何级数收敛当且仅当 ∣r∣<1|r| < 1∣r∣<1
发散情况
- 当 ∣r∣≥1|r| \geq 1∣r∣≥1 时,级数发散
- 当 r=1r = 1r=1 时,级数变为 ∑a\sum a∑a,发散到无穷
- 当 r=−1r = -1r=−1 时,级数振荡发散
- 当 ∣r∣>1|r| > 1∣r∣>1 时,级数绝对值发散到无穷
有限几何级数求和
∑k=0nark=a1−rn+11−r,r≠1 \sum_{k=0}^{n} ar^k = a \frac{1-r^{n+1}}{1-r}, \quad r \neq 1 k=0∑nark=a1−r1−rn+1,r=1推导过程:
设 Sn=a+ar+ar2+⋯+arnS_n = a + ar + ar^2 + \cdots + ar^nSn=a+ar+ar2+⋯+arn则 rSn=ar+ar2+ar3+⋯+arn+1rS_n = ar + ar^2 + ar^3 + \cdots + ar^{n+1}rSn=ar+ar2+ar3+⋯+arn+1
两式相减:Sn−rSn=a−arn+1S_n - rS_n = a - ar^{n+1}Sn−rSn=a−arn+1
因此:Sn=a1−rn+11−rS_n = a \frac{1-r^{n+1}}{1-r}Sn=a1−r1−rn+1
无穷几何级数求和
当 ∣r∣<1|r| < 1∣r∣<1 时:
∑k=0∞ark=a1−r \sum_{k=0}^{\infty} ar^k = \frac{a}{1-r} k=0∑∞ark=1−ra推导:当 ∣r∣<1|r| < 1∣r∣<1 时,limn→∞rn+1=0\lim_{n \to \infty} r^{n+1} = 0limn→∞rn+1=0,所以:
∑k=0∞ark=limn→∞a1−rn+11−r=a1−r \sum_{k=0}^{\infty} ar^k = \lim_{n \to \infty} a \frac{1-r^{n+1}}{1-r} = \frac{a}{1-r} k=0∑∞ark=n→∞lima1−r1−rn+1=1−ra基本几何级数
∑k=0∞rk=11−r,∣r∣<1 \sum_{k=0}^{\infty} r^k = \frac{1}{1-r}, \quad |r| < 1 k=0∑∞rk=1−r1,∣r∣<1从k=1开始
∑k=1∞rk=r1−r,∣r∣<1 \sum_{k=1}^{\infty} r^k = \frac{r}{1-r}, \quad |r| < 1 k=1∑∞rk=1−rr,∣r∣<1交错级数
∑k=0∞(−1)krk=11+r,∣r∣<1 \sum_{k=0}^{\infty} (-1)^k r^k = \frac{1}{1+r}, \quad |r| < 1 k=0∑∞(−1)krk=1+r1,∣r∣<1
核心公式
∑k=0∞ark=a1−r,∣r∣<1 \boxed{\sum_{k=0}^{\infty} ar^k = \frac{a}{1-r}, \quad |r| < 1} k=0∑∞ark=1−ra,∣r∣<1收敛条件
∣r∣<1 时收敛,∣r∣≥1 时发散 \boxed{|r| < 1 \text{ 时收敛,}|r| \geq 1 \text{ 时发散}} ∣r∣<1 时收敛,∣r∣≥1 时发散有限和公式
∑k=0nark=a1−rn+11−r,r≠1 \boxed{\sum_{k=0}^{n} ar^k = a \frac{1-r^{n+1}}{1-r}, \quad r \neq 1} k=0∑nark=a1−r1−rn+1,r=1
∑k=1n(12)k=1/2(1−(1/2)n)1−1/2=1−(12)n \sum_{k=1}^n \left(\frac{1}{2}\right)^k = \frac{1/2 \left(1 - (1/2)^n\right)}{1 - 1/2} = 1 - \left(\frac{1}{2}\right)^n k=1∑n(21)k=1−1/21/2(1−(1/2)n)=1−(21)n
因此:
Tn=2nSn=2n(1−(12)n)=2n−1
T_n = 2^n S_n = 2^n \left(1 - \left(\frac{1}{2}\right)^n\right) = 2^n - 1
Tn=2nSn=2n(1−(21)n)=2n−1
一般化:求和因子法
一般形式
考虑线性递归式:
anTn=bnTn−1+cn(2.9)
a_n T_n = b_n T_{n-1} + c_n \tag{2.9}
anTn=bnTn−1+cn(2.9)
[!NOTE]
河内塔递归式:
T0=0;Tn=2Tn−1+1,n>0 T_0 = 0; \quad T_n = 2T_{n-1} + 1, \quad n > 0 T0=0;Tn=2Tn−1+1,n>0将其重写为标准形式:
1⋅Tn=2⋅Tn−1+1 1 \cdot T_n = 2 \cdot T_{n-1} + 1 1⋅Tn=2⋅Tn−1+1这里 an=1,bn=2,cn=1a_n = 1, b_n = 2, c_n = 1an=1,bn=2,cn=1。
思想:乘以一个求和因子 sns_nsn,使得:
snanTn=snbnTn−1+sncn
s_n a_n T_n = s_n b_n T_{n-1} + s_n c_n
snanTn=snbnTn−1+sncn
并令:
snbn=sn−1an−1
s_n b_n = s_{n-1} a_{n-1}
snbn=sn−1an−1
[!NOTE]
我们想要找到 sns_nsn 使得 sn⋅2=sn−1⋅1s_n \cdot 2 = s_{n-1} \cdot 1sn⋅2=sn−1⋅1,即:
sn=sn−12 s_n = \frac{s_{n-1}}{2} sn=2sn−1这给出 sn=2−ns_n = 2^{-n}sn=2−n(取 s0=1s_0 = 1s0=1)。
这样定义:
Sn=snanTn
S_n = s_n a_n T_n
Sn=snanTn
则递推变为:
Sn=Sn−1+sncn
S_n = S_{n-1} + s_n c_n
Sn=Sn−1+sncn
[!NOTE]
对于河内塔:
- Sn=2−n⋅1⋅Tn=Tn2nS_n = 2^{-n} \cdot 1 \cdot T_n = \frac{T_n}{2^n}Sn=2−n⋅1⋅Tn=2nTn
- sncn=2−n⋅1=12ns_n c_n = 2^{-n} \cdot 1 = \frac{1}{2^n}sncn=2−n⋅1=2n1
所以得到:
Tn2n=Tn−12n−1+12n \frac{T_n}{2^n} = \frac{T_{n-1}}{2^{n-1}} + \frac{1}{2^n} 2nTn=2n−1Tn−1+2n1即:
Sn=Sn−1+12n S_n = S_{n-1} + \frac{1}{2^n} Sn=Sn−1+2n1
即:
Sn=S0+∑k=1nskck=s0a0T0+∑k=1nskck
S_n = S_0 + \sum_{k=1}^n s_k c_k = s_0 a_0 T_0 + \sum_{k=1}^n s_k c_k
Sn=S0+k=1∑nskck=s0a0T0+k=1∑nskck
由于 s1b1=s0a0s_1 b_1 = s_0 a_0s1b1=s0a0,故 s0a0=s1b1s_0 a_0 = s_1 b_1s0a0=s1b1,所以:
Sn=s1b1T0+∑k=1nskck
S_n = s_1 b_1 T_0 + \sum_{k=1}^n s_k c_k
Sn=s1b1T0+k=1∑nskck
[!NOTE]
对于河内塔:
- S0=2−0⋅1⋅0=0S_0 = 2^{-0} \cdot 1 \cdot 0 = 0S0=2−0⋅1⋅0=0
- skck=2−k⋅1=12ks_k c_k = 2^{-k} \cdot 1 = \frac{1}{2^k}skck=2−k⋅1=2k1
所以:
Sn=0+∑k=1n12k=1−12n S_n = 0 + \sum_{k=1}^n \frac{1}{2^k} = 1 - \frac{1}{2^n} Sn=0+k=1∑n2k1=1−2n1
最终解为:
Tn=1snan(s1b1T0+∑k=1nskck)(2.10)
T_n = \frac{1}{s_n a_n} \left( s_1 b_1 T_0 + \sum_{k=1}^n s_k c_k \right) \tag{2.10}
Tn=snan1(s1b1T0+k=1∑nskck)(2.10)
[!NOTE]
对于河内塔:
- snan=2−n⋅1=2−ns_n a_n = 2^{-n} \cdot 1 = 2^{-n}snan=2−n⋅1=2−n
- s1b1T0=2−1⋅2⋅0=0s_1 b_1 T_0 = 2^{-1} \cdot 2 \cdot 0 = 0s1b1T0=2−1⋅2⋅0=0
- ∑k=1nskck=∑k=1n12k=1−12n\sum_{k=1}^n s_k c_k = \sum_{k=1}^n \frac{1}{2^k} = 1 - \frac{1}{2^n}∑k=1nskck=∑k=1n2k1=1−2n1
所以:
Tn=12−n(0+1−12n)=2n(1−12n)=2n−1 T_n = \frac{1}{2^{-n}} \left( 0 + 1 - \frac{1}{2^n} \right) = 2^n \left( 1 - \frac{1}{2^n} \right) = 2^n - 1 Tn=2−n1(0+1−2n1)=2n(1−2n1)=2n−1
💡 s1s_1s1 可取任意非零值,因为它在分子分母中成比例消去。
求和因子的构造
递推关系
由关键关系 snbn=sn−1an−1s_n b_n = s_{n-1} a_{n-1}snbn=sn−1an−1,可得:
sn=sn−1⋅an−1bn
s_n = s_{n-1} \cdot \frac{a_{n-1}}{b_n}
sn=sn−1⋅bnan−1
递推展开
sn=sn−1⋅an−1bn=sn−2⋅an−2bn−1⋅an−1bn=⋯
s_n = s_{n-1} \cdot \frac{a_{n-1}}{b_n} = s_{n-2} \cdot \frac{a_{n-2}}{b_{n-1}} \cdot \frac{a_{n-1}}{b_n} = \cdots
sn=sn−1⋅bnan−1=sn−2⋅bn−1an−2⋅bnan−1=⋯
通项公式
sn=an−1an−2⋯a1bnbn−1⋯b2⋅s1(2.11)
s_n = \frac{a_{n-1} a_{n-2} \cdots a_1}{b_n b_{n-1} \cdots b_2} \cdot s_1 \tag{2.11}
sn=bnbn−1⋯b2an−1an−2⋯a1⋅s1(2.11)
这给出了求和因子的一般构造方法(相差一个非零常数倍数)。
[!NOTE]
对于河内塔:an=1,bn=2a_n = 1, b_n = 2an=1,bn=2
sn=1⋅1⋯12⋅2⋯2⋅s1=12n−1⋅s1 s_n = \frac{1 \cdot 1 \cdots 1}{2 \cdot 2 \cdots 2} \cdot s_1 = \frac{1}{2^{n-1}} \cdot s_1 sn=2⋅2⋯21⋅1⋯1⋅s1=2n−11⋅s1
取 s1=12s_1 = \frac{1}{2}s1=21,则 sn=12ns_n = \frac{1}{2^n}sn=2n1,这正是我们之前使用的求和因子!
前提条件:所有 an≠0a_n \ne 0an=0, bn≠0b_n \ne 0bn=0,否则无法进行除法运算。
方法总结
- 识别标准形式:将递归式写成 anTn=bnTn−1+cna_n T_n = b_n T_{n-1} + c_nanTn=bnTn−1+cn
- 构造求和因子:使用 sn=an−1⋯a1bn⋯b2s_n = \frac{a_{n-1} \cdots a_1}{b_n \cdots b_2}sn=bn⋯b2an−1⋯a1
- 乘以求和因子:得到 Sn=Sn−1+sncnS_n = S_{n-1} + s_n c_nSn=Sn−1+sncn
- 求和求解:Sn=S0+∑k=1nskckS_n = S_0 + \sum_{k=1}^n s_k c_kSn=S0+∑k=1nskck
- 还原原变量:Tn=SnsnanT_n = \frac{S_n}{s_n a_n}Tn=snanSn
[!NOTE]
河内塔如何用这套方法解决:
- 标准形式:1⋅Tn=2⋅Tn−1+11 \cdot T_n = 2 \cdot T_{n-1} + 11⋅Tn=2⋅Tn−1+1
- 求和因子:sn=12ns_n = \frac{1}{2^n}sn=2n1
- 变换:Tn2n=Tn−12n−1+12n\frac{T_n}{2^n} = \frac{T_{n-1}}{2^{n-1}} + \frac{1}{2^n}2nTn=2n−1Tn−1+2n1
- 求和:Tn2n=∑k=1n12k=1−12n\frac{T_n}{2^n} = \sum_{k=1}^n \frac{1}{2^k} = 1 - \frac{1}{2^n}2nTn=∑k=1n2k1=1−2n1
- 还原:Tn=2n−1T_n = 2^n - 1Tn=2n−1
应用:快速排序
[!CAUTION]
def partition(A, p, r): """ 将子数组 A[p..r] 按主元划分成两部分: - 左侧:所有元素 ≤ 主元 - 右侧:所有元素 > 主元 主元为 A[r],最终放置在正确位置并返回其索引。 参数: A: 待划分的数组 p: 子数组起始索引(包含) r: 子数组结束索引(包含) 返回值: 主元的最终位置(索引) """ x = A[r] # 选择最后一个元素作为主元 i = p - 1 # i 指向小于等于主元区域的最后一个位置 # 遍历从 p 到 r-1 的每个元素 for j in range(p, r): # 如果当前元素小于等于主元 if A[j] <= x: i += 1 # 扩展小于等于区域 A[i], A[j] = A[j], A[i] # 将 A[j] 交换到左侧区域 # 将主元 A[r] 放置到正确位置(i+1) A[i + 1], A[r] = A[r], A[i + 1] return i + 1 # 返回主元的索引 def quicksort(A, p, r): """ 快速排序主函数:对数组 A[p..r] 进行原址排序。 参数: A: 待排序数组 p: 当前排序区间的起始索引 r: 当前排序区间的结束索引 """ if p < r: # 基本情况:当 p >= r 时,子数组长度 <= 1,无需排序 q = partition(A, p, r) # 划分数组,q 为主元的最终位置 quicksort(A, p, q - 1) # 递归排序左半部分 A[p..q-1] quicksort(A, q + 1, r) # 递归排序右半部分 A[q+1..r]
快速排序由霍尔于1962年发明,其平均比较次数满足递归式:
C0=C1=0;
C_0 = C_1 = 0;
C0=C1=0;
Cn=n+1+2n∑k=0n−1Ck,n>1(2.12)
C_n = n + 1 + \frac{2}{n} \sum_{k=0}^{n-1} C_k, \quad n > 1 \tag{2.12}
Cn=n+1+n2k=0∑n−1Ck,n>1(2.12)
化简递归式
先消去分母:两边乘 nnn:
nCn=n2+n+2∑k=0n−1Ck,n>1
n C_n = n^2 + n + 2 \sum_{k=0}^{n-1} C_k, \quad n > 1
nCn=n2+n+2k=0∑n−1Ck,n>1
将 nnn 替换为 n−1n-1n−1(要求 n>2n > 2n>2):
(n−1)Cn−1=(n−1)2+(n−1)+2∑k=0n−2Ck
(n-1) C_{n-1} = (n-1)^2 + (n-1) + 2 \sum_{k=0}^{n-2} C_k
(n−1)Cn−1=(n−1)2+(n−1)+2k=0∑n−2Ck
两式相减,消去求和号:
nCn−(n−1)Cn−1=[n2+n]−[(n−1)2+(n−1)]+2Cn−1
n C_n - (n-1) C_{n-1} = [n^2 + n] - [(n-1)^2 + (n-1)] + 2 C_{n-1}
nCn−(n−1)Cn−1=[n2+n]−[(n−1)2+(n−1)]+2Cn−1
=(n2+n)−(n2−2n+1+n−1)+2Cn−1=2n+2Cn−1
= (n^2 + n) - (n^2 - 2n + 1 + n - 1) + 2 C_{n-1} = 2n + 2 C_{n-1}
=(n2+n)−(n2−2n+1+n−1)+2Cn−1=2n+2Cn−1
整理得:
nCn=(n+1)Cn−1+2n,n>2
n C_n = (n+1) C_{n-1} + 2n, \quad n > 2
nCn=(n+1)Cn−1+2n,n>2
初始值:C0=C1=0C_0 = C_1 = 0C0=C1=0, C2=3C_2 = 3C2=3
应用求和因子法
此式为 (2.9) 形式,其中:
- an=na_n = nan=n
- bn=n+1b_n = n+1bn=n+1
- cn=2nc_n = 2ncn=2n,但需注意 n=1,2n=1,2n=1,2 的初始条件,可用艾弗森约定修正:
cn=2n−2[n=1]+2[n=2] c_n = 2n - 2[n=1] + 2[n=2] cn=2n−2[n=1]+2[n=2]
[!NOTE]
修正原因:
项 −2[n=1]-2[n=1]−2[n=1]:
当 n=1n=1n=1,原式左边为 1⋅C1=01 \cdot C_1 = 01⋅C1=0,右边为 2C0+2⋅1=0+2=22 C_0 + 2\cdot1 = 0 + 2 = 22C0+2⋅1=0+2=2,多出 2。
⇒ 减去 2 以使等式成立。项 +2[n=2]+2[n=2]+2[n=2]:
当 n=2n=2n=2,实际 C2=3C_2 = 3C2=3,代入左边:2⋅3=62 \cdot 3 = 62⋅3=6,右边:3C1+2⋅2=0+4=43 C_1 + 2\cdot2 = 0 + 4 = 43C1+2⋅2=0+4=4,少 2。
⇒ 加上 2 以匹配真值。
求和因子:
sn=an−1⋯a1bn⋯b2=(n−1)!(n+1)n⋯3=(n−1)!⋅2(n+1)!=2(n+1)n
s_n = \frac{a_{n-1} \cdots a_1}{b_n \cdots b_2} = \frac{(n-1)!}{(n+1) n \cdots 3} = \frac{(n-1)! \cdot 2}{(n+1)!} = \frac{2}{(n+1)n}
sn=bn⋯b2an−1⋯a1=(n+1)n⋯3(n−1)!=(n+1)!(n−1)!⋅2=(n+1)n2
取 sn=2n(n+1)s_n = \frac{2}{n(n+1)}sn=n(n+1)2
由线性递推通解公式((2.10)):
Cn=1snan(s1b1C0+∑k=1nskck)
C_n = \frac{1}{s_n a_n} \left( s_1 b_1 C_0 + \sum_{k=1}^n s_k c_k \right)
Cn=snan1(s1b1C0+k=1∑nskck)
已知:
- C0=0C_0 = 0C0=0 ⇒ s1b1C0=0s_1 b_1 C_0 = 0s1b1C0=0
- an=na_n = nan=n, sn=2n(n+1)s_n = \frac{2}{n(n+1)}sn=n(n+1)2 ⇒ snan=2n+1s_n a_n = \frac{2}{n+1}snan=n+12
- 所以:
Cn=1snan∑k=1nskck=n+12∑k=1nskck C_n = \frac{1}{s_n a_n} \sum_{k=1}^n s_k c_k = \frac{n+1}{2} \sum_{k=1}^n s_k c_k Cn=snan1k=1∑nskck=2n+1k=1∑nskck
我们有:
sk=2k(k+1),ck=2k−2[k=1]+2[k=2]
s_k = \frac{2}{k(k+1)}, \quad c_k = 2k - 2[k=1] + 2[k=2]
sk=k(k+1)2,ck=2k−2[k=1]+2[k=2]
所以:
skck=sk⋅2k−2sk[k=1]+2sk[k=2]
s_k c_k = s_k \cdot 2k - 2 s_k [k=1] + 2 s_k [k=2]
skck=sk⋅2k−2sk[k=1]+2sk[k=2]
逐项计算:
(1) 主项:sk⋅2k=2k(k+1)⋅2k=4k+1s_k \cdot 2k = \frac{2}{k(k+1)} \cdot 2k = \frac{4}{k+1}sk⋅2k=k(k+1)2⋅2k=k+14
(2) 修正项:
- 当 k=1k=1k=1:−2s1=−2⋅21⋅2=−2⋅1=−2-2 s_1 = -2 \cdot \frac{2}{1 \cdot 2} = -2 \cdot 1 = -2−2s1=−2⋅1⋅22=−2⋅1=−2
- 当 k=2k=2k=2:+2s2=+2⋅22⋅3=+2⋅13=23+2 s_2 = +2 \cdot \frac{2}{2 \cdot 3} = +2 \cdot \frac{1}{3} = \frac{2}{3}+2s2=+2⋅2⋅32=+2⋅31=32
- 其他 kkk:修正项为 0
所以总和:
∑k=1nskck=∑k=1n4k+1−2[k=1]+2[k=2](仅在 k=1,2 处有额外修正)
\sum_{k=1}^n s_k c_k = \sum_{k=1}^n \frac{4}{k+1} - 2[k=1] + 2[k=2] \quad \text{(仅在 } k=1,2 \text{ 处有额外修正)}
k=1∑nskck=k=1∑nk+14−2[k=1]+2[k=2](仅在 k=1,2 处有额外修正)
即:
∑k=1nskck=4∑k=1n1k+1−2⋅δk1+2⋅δk2=4∑k=1n1k+1−2+23(因为只在 k=1,2 发生)
\sum_{k=1}^n s_k c_k = 4 \sum_{k=1}^n \frac{1}{k+1} - 2 \cdot \delta_{k1} + 2 \cdot \delta_{k2} = 4 \sum_{k=1}^n \frac{1}{k+1} - 2 + \frac{2}{3} \quad \text{(因为只在 } k=1,2 \text{ 发生)}
k=1∑nskck=4k=1∑nk+11−2⋅δk1+2⋅δk2=4k=1∑nk+11−2+32(因为只在 k=1,2 发生)
注意:求和中的修正项是固定的数值,不是对每个 kkk 都加,而是当 k=1k=1k=1 时减 2,k=2k=2k=2 时加 23\frac{2}{3}32,所以总修正为:
−2+23=−43 -2 + \frac{2}{3} = -\frac{4}{3} −2+32=−34
因此:
∑k=1nskck=4∑k=1n1k+1−43
\sum_{k=1}^n s_k c_k = 4 \sum_{k=1}^n \frac{1}{k+1} - \frac{4}{3}
k=1∑nskck=4k=1∑nk+11−34
Cn=n+12∑k=1nskck=n+12(4∑k=1n1k+1−43)=n+12⋅4(∑k=1n1k+1−13) C_n = \frac{n+1}{2} \sum_{k=1}^n s_k c_k = \frac{n+1}{2} \left( 4 \sum_{k=1}^n \frac{1}{k+1} - \frac{4}{3} \right) = \frac{n+1}{2} \cdot 4 \left( \sum_{k=1}^n \frac{1}{k+1} - \frac{1}{3} \right) Cn=2n+1k=1∑nskck=2n+1(4k=1∑nk+11−34)=2n+1⋅4(k=1∑nk+11−31)
=2(n+1)(∑k=1n1k+1−13)=2(n+1)∑k=1n1k+1−23(n+1) = 2(n+1) \left( \sum_{k=1}^n \frac{1}{k+1} - \frac{1}{3} \right) = 2(n+1) \sum_{k=1}^n \frac{1}{k+1} - \frac{2}{3}(n+1) =2(n+1)(k=1∑nk+11−31)=2(n+1)k=1∑nk+11−32(n+1)
最终结果
Cn=2(n+1)∑k=1n1k+1−23(n+1),n>1
\boxed{
C_n = 2(n+1) \sum_{k=1}^n \frac{1}{k+1} - \frac{2}{3}(n+1), \quad n > 1
}
Cn=2(n+1)k=1∑nk+11−32(n+1),n>1
使用调和数计算最终结果
定义调和数:
Hn=1+12+13+⋯+1n=∑k=1n1k(2.13)
H_n = 1 + \frac{1}{2} + \frac{1}{3} + \cdots + \frac{1}{n} = \sum_{k=1}^n \frac{1}{k} \tag{2.13}
Hn=1+21+31+⋯+n1=k=1∑nk1(2.13)
将和式用调和数表示:
∑k=1n1k+1=Hn+1−1,其中 Hn+1=∑k=1n+11k
\sum_{k=1}^n \frac{1}{k+1} = H_{n+1} - 1, \quad \text{其中 } H_{n+1} = \sum_{k=1}^{n+1} \frac{1}{k}
k=1∑nk+11=Hn+1−1,其中 Hn+1=k=1∑n+1k1
代入得:
Cn=2(n+1)(Hn+1−1)−23(n+1)=2(n+1)(Hn+1−43)
C_n = 2(n+1)(H_{n+1} - 1) - \frac{2}{3}(n+1) = 2(n+1) \left( H_{n+1} - \frac{4}{3} \right)
Cn=2(n+1)(Hn+1−1)−32(n+1)=2(n+1)(Hn+1−34)
验证小值:
n=2n = 2n=2:
H3=1+12+13=116H_3 = 1 + \frac{1}{2} + \frac{1}{3} = \frac{11}{6}H3=1+21+31=611,
C2=2(3)(116−43)=6(116−86)=6⋅36=3C_2 = 2(3)\left( \frac{11}{6} - \frac{4}{3} \right) = 6 \left( \frac{11}{6} - \frac{8}{6} \right) = 6 \cdot \frac{3}{6} = 3C2=2(3)(611−34)=6(611−68)=6⋅63=3
n=3n = 3n=3:
H4=116+14=2512H_4 = \frac{11}{6} + \frac{1}{4} = \frac{25}{12}H4=611+41=1225,
C3=2(4)(2512−43)=8(2512−1612)=8⋅912=6C_3 = 2(4)\left( \frac{25}{12} - \frac{4}{3} \right) = 8 \left( \frac{25}{12} - \frac{16}{12} \right) = 8 \cdot \frac{9}{12} = 6C3=2(4)(1225−34)=8(1225−1216)=8⋅129=6
1498

被折叠的 条评论
为什么被折叠?



