具体数学:和式(一) 定义和与递归式的转化

第二章 和式

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++2n1
若要表示 nnn 项之和,而不是 2n−12^{n-1}2n1 项之和,就应该更明确地写成:
20+21+⋯+2n−1 2^0 + 2^1 + \cdots + 2^{n-1} 20+21++2n1


2.1.2 Σ符号

省略号“…”可能含糊不清且有点冗长。另一种方式是使用有确定界限的表达形式:
∑k=1nak(2.2) \sum_{k=1}^n a_k \tag{2.2} k=1nak(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

不应使用 aaannn 来替代式 (2.2) 中的 kkk 作为指标变量,因为那些字母是"自由变量",在 Σ 之外是有意义的。


一种推广的 Σ 符号比有确定界限的形式更加有用:我们直接把一个或多个条件写在 Σ 的下面,以此指定求和所应该取的指标集。

例如,(2.1) 和 (2.2) 中的和式也可以写成:
∑1≤k≤nak(2.3) \sum_{1 \leq k \leq n} a_k \tag{2.3} 1knak(2.3)

在这个例子中,新形式与 (2.2) 没有太大区别,但一般形式允许我们对不限于连续整数的指标求和。

  • 优点一:清晰

示例1:正奇数的平方和

不超过 100 的所有正奇数的平方和可表示为:
∑1≤k<100k 为奇数k2 \sum_{\substack{1 \leq k < 100 \\ k\ \text{为奇数}}} k^2 1k<100k 为奇数k2
而其有确定界限的等价形式:
∑k=049(2k+1)2 \sum_{k=0}^{49} (2k+1)^2 k=049(2k+1)2
更加繁琐不便,且不清晰。

示例2:素数的倒数之和

1 与 NNN 之间所有素数的倒数之和是:
∑p≤Np 为素数1p \sum_{\substack{p \leq N \\ p\ \text{为素数}}} \frac{1}{p} pNp 为素数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 NN 的素数个数。

附带指出,这个和式给出了接近 NNN 的随机整数的不同素因子的近似平均个数,因为那些整数中大约有 1/p1/p1/p 个能被 ppp 整除。对于大的 NNN,它的值近似等于 ln⁡ln⁡N+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 M0.261 497 212 847 642 783 755 426 838 608 695 859 051 566 6
是麦尔滕常数,ln⁡x\ln xlnx 表示 xxx 的自然对数,而 ln⁡ln⁡x\ln \ln xlnlnx 表示 ln⁡(ln⁡x)\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} 1knak=1k+1nak+1
很容易看出所做的变动,几乎不需要思考。

而对于有确定界限的形式
∑k=1nak=∑k=0n−1ak+1 \sum_{k=1}^n a_k = \sum_{k=0}^{n-1} a_{k+1} k=1nak=k=0n1ak+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;否则会有无穷多个非零的数相加,事情就会有点儿复杂。

在另一种极端情形,如果对所有的整数 kkkP(k)P(k)P(k) 都不为真,我们就有一个"空的"和,任何空的和的值都定义为零


  • 错误用法案例

人们常常想要使用:
∑k=2n−1k(k−1)(n−k) \sum_{k=2}^{n-1} k(k-1)(n-k) k=2n1k(k1)(nk)
而不是:
∑k=0nk(k−1)(n−k) \sum_{k=0}^{n} k(k-1)(n-k) k=0nk(k1)(nk)
因为在这个和式中 k=0,1k = 0, 1k=0,1 以及 nnn 的项都等于零。将 n−2n - 2n2 项相加而不是将 n+1n + 1n+1 项相加往往更为有效。

但是不应该这样想,因为计算的有效性并不等同于理解的有效性

我们会发现,保持求和指标的上下限尽可能简单大有裨益,因为当求和的界限简单时,处理起来要容易得多

使用如 ∑k=2n−1\sum_{k=2}^{n-1}k=2n1 这样的求和界限可能存在含糊不清的风险

  • n=0n = 0n=0n=1n = 1n=1 时,下限 k=2k = 2k=2 大于上限 n−1≤0n - 1 \leq 0n10,此时求和范围为空,但其含义在未明确定义时并不清晰
  • 相比之下,包含额外项但其值为零的和式不会带来问题,反而常常免除许多麻烦

  • 艾弗森约定

对于任意命题 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} kak[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/kk=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 是素数][pN]/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=0nak
它可以被看作一个定义在 n≥0n \geq 0n0 上的序列,满足递归关系:
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=Sn1+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=Rn1+β+γn,n>0

只能处理被加数是线性函数的和式,即:
∑k=0n(β+γk) \sum_{k=0}^n (\beta + \gamma k) k=0n(β+γ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=Rn1+β+γ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 Rn1+β+γ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)0A(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 Rn1+β+γn=(n1)+β+γn
  • 左边为 Rn=nR_n = nRn=n,故要求:
    n=(n−1)+β+γn n = (n-1) + \beta + \gamma n n=(n1)+β+γn
    整理得:
    n=n−1+β+γn⇒0=−1+β+γn n = n - 1 + \beta + \gamma n \Rightarrow 0 = -1 + \beta + \gamma n n=n1+β+γn0=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)0B(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 Rn1+β+γn=(n1)2+β+γn=n22n+1+β+γn
  • 左边为 Rn=n2R_n = n^2Rn=n2,故要求:
    n2=n2−2n+1+β+γn n^2 = n^2 - 2n + 1 + \beta + \gamma n n2=n22n+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+nC(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=Rn1+β+γ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 Rn1+β+γn=α+β(n1)+γ2(n1)n+β+γn
=α+βn−β+γ⋅n(n−1)2+β+γn = \alpha + \beta n - \beta + \gamma \cdot \frac{n(n-1)}{2} + \beta + \gamma n =α+βnβ+γ2n(n1)+β+γ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(n1)+n)=α+βn+γ2n2+n

这正是 RnR_nRn 的表达式。

具体和式应用

我们想计算:
∑k=0n(a+bk) \sum_{k=0}^n (a + b k) k=0n(a+bk)

第一步:建立递归关系

设:
Sn=∑k=0n(a+bk) S_n = \sum_{k=0}^n (a + b k) Sn=k=0n(a+bk)

我们可以建立递归关系:

  • 基础情况:当 n=0n = 0n=0 时,
    S0=a+b⋅0=a S_0 = a + b \cdot 0 = a S0=a+b0=a

  • 递推关系:当 n>0n > 0n>0 时,
    Sn=Sn−1+(a+bn) S_n = S_{n-1} + (a + b n) Sn=Sn1+(a+bn)
    即:
    Sn=Sn−1+a+bn S_n = S_{n-1} + a + b n Sn=Sn1+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=Rn1+β+γ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=a1+an+b2n(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=0n(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=0n1=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=0nk=2n(n+1)
    正确

[!NOTE]

解题思路:

  1. 将和式转化为递归式

    • 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=Sn1+f(n)S0=f(0)S_0 = f(0)S0=f(0)
  2. 识别递归式参数

    • 将具体递归式与标准形式 Rn=Rn−1+β+γnR_n = R_{n-1} + \beta + \gamma nRn=Rn1+β+γn 对比
    • 确定参数 α,β,γ\alpha, \beta, \gammaα,β,γ
  3. 应用成套方法求通解

    • 利用已知的系数函数: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)
  4. 得到封闭形式

    • 化简得到和式的闭形式解

[!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=Rn1+β+γ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,γ=0A(n)=1A(n) = 1A(n)=1
Rn=nR_n = nRn=nα=0,β=1,γ=0\alpha=0, \beta=1, \gamma=0α=0,β=1,γ=0B(n)=nB(n) = nB(n)=n
Rn=n2R_n = n^2Rn=n2α=0,β=−1,γ=2\alpha=0, \beta=-1, \gamma=2α=0,β=1,γ=2C(n)=n(n+1)2C(n) = \frac{n(n+1)}{2}C(n)=2n(n+1)

因为:

  1. 任何满足该递归式的函数都可以表示为这三个基底的线性组合
  2. 系数函数 A(n), B(n), C(n) 只依赖于递归式的结构,而不依赖于具体的参数值
  3. 一旦确定了这三个系数函数,它们对所有同类型递归式都适用

这实际上是在求解一个线性算子的基底表示:

  • 递归式定义了一个从参数空间 (α,β,γ)(\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

  1. 可以分解为: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=31+5n+02n(n+1)
  2. 对应参数:α=3,β=5,γ=0\alpha=3, \beta=5, \gamma=0α=3,β=5,γ=0
  3. 直接套用: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=3A(n)+5B(n)+0C(n)=31+5n=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=2Tn1+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=2n1Tn1+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=Sn1+2n,n>0

于是:
Sn=∑k=1n2−k S_n = \sum_{k=1}^n 2^{-k} Sn=k=1n2k

注意:和式从 k=1k=1k=1 开始,因为递推从 n>0n>0n>0 开始,S1=2−1S_1 = 2^{-1}S1=21

这是一个几何级数

[!NOTE]

几何级数(Geometric Series)是各项之间具有固定比例关系的无穷级数。

一般形式

∑k=0∞ark=a+ar+ar2+ar3+⋯ \sum_{k=0}^{\infty} ar^k = a + ar + ar^2 + ar^3 + \cdots k=0ark=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=0nark=a+ar+ar2++arn

收敛条件

几何级数收敛当且仅当 ∣r∣<1|r| < 1r<1

发散情况

  • ∣r∣≥1|r| \geq 1r1 时,级数发散
  • r=1r = 1r=1 时,级数变为 ∑a\sum aa,发散到无穷
  • r=−1r = -1r=1 时,级数振荡发散
  • ∣r∣>1|r| > 1r>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=0nark=a1r1rn+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}SnrSn=aarn+1

因此:Sn=a1−rn+11−rS_n = a \frac{1-r^{n+1}}{1-r}Sn=a1r1rn+1

无穷几何级数求和

∣r∣<1|r| < 1r<1 时:
∑k=0∞ark=a1−r \sum_{k=0}^{\infty} ar^k = \frac{a}{1-r} k=0ark=1ra

推导:当 ∣r∣<1|r| < 1r<1 时,lim⁡n→∞rn+1=0\lim_{n \to \infty} r^{n+1} = 0limnrn+1=0,所以:
∑k=0∞ark=lim⁡n→∞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=0ark=nlima1r1rn+1=1ra

基本几何级数
∑k=0∞rk=11−r,∣r∣<1 \sum_{k=0}^{\infty} r^k = \frac{1}{1-r}, \quad |r| < 1 k=0rk=1r1,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=1rk=1rr,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=0ark=1ra,r<1

收敛条件
∣r∣<1 时收敛,∣r∣≥1 时发散 \boxed{|r| < 1 \text{ 时收敛,}|r| \geq 1 \text{ 时发散}} r<1 时收敛,r1 时发散

有限和公式
∑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=0nark=a1r1rn+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=1n(21)k=11/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)=2n1


一般化:求和因子法

一般形式

考虑线性递归式:
anTn=bnTn−1+cn(2.9) a_n T_n = b_n T_{n-1} + c_n \tag{2.9} anTn=bnTn1+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=2Tn1+1,n>0

将其重写为标准形式:
1⋅Tn=2⋅Tn−1+1 1 \cdot T_n = 2 \cdot T_{n-1} + 1 1Tn=2Tn1+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=snbnTn1+sncn
并令:
snbn=sn−1an−1 s_n b_n = s_{n-1} a_{n-1} snbn=sn1an1

[!NOTE]

我们想要找到 sns_nsn 使得 sn⋅2=sn−1⋅1s_n \cdot 2 = s_{n-1} \cdot 1sn2=sn11,即:
sn=sn−12 s_n = \frac{s_{n-1}}{2} sn=2sn1

这给出 sn=2−ns_n = 2^{-n}sn=2n(取 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=Sn1+sncn

[!NOTE]

对于河内塔:

  • Sn=2−n⋅1⋅Tn=Tn2nS_n = 2^{-n} \cdot 1 \cdot T_n = \frac{T_n}{2^n}Sn=2n1Tn=2nTn
  • sncn=2−n⋅1=12ns_n c_n = 2^{-n} \cdot 1 = \frac{1}{2^n}sncn=2n1=2n1

所以得到:
Tn2n=Tn−12n−1+12n \frac{T_n}{2^n} = \frac{T_{n-1}}{2^{n-1}} + \frac{1}{2^n} 2nTn=2n1Tn1+2n1

即:
Sn=Sn−1+12n S_n = S_{n-1} + \frac{1}{2^n} Sn=Sn1+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=1nskck=s0a0T0+k=1nskck

由于 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=1nskck

[!NOTE]

对于河内塔:

  • S0=2−0⋅1⋅0=0S_0 = 2^{-0} \cdot 1 \cdot 0 = 0S0=2010=0
  • skck=2−k⋅1=12ks_k c_k = 2^{-k} \cdot 1 = \frac{1}{2^k}skck=2k1=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=1n2k1=12n1

最终解为:
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=1nskck)(2.10)

[!NOTE]

对于河内塔:

  • snan=2−n⋅1=2−ns_n a_n = 2^{-n} \cdot 1 = 2^{-n}snan=2n1=2n
  • s1b1T0=2−1⋅2⋅0=0s_1 b_1 T_0 = 2^{-1} \cdot 2 \cdot 0 = 0s1b1T0=2120=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=12n1

所以:
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=2n1(0+12n1)=2n(12n1)=2n1

💡 s1s_1s1 可取任意非零值,因为它在分子分母中成比例消去。


求和因子的构造
递推关系

由关键关系 snbn=sn−1an−1s_n b_n = s_{n-1} a_{n-1}snbn=sn1an1,可得:
sn=sn−1⋅an−1bn s_n = s_{n-1} \cdot \frac{a_{n-1}}{b_n} sn=sn1bnan1

递推展开
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=sn1bnan1=sn2bn1an2bnan1=

通项公式
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=bnbn1b2an1an2a1s1(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=222111s1=2n11s1

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,否则无法进行除法运算。

方法总结
  1. 识别标准形式:将递归式写成 anTn=bnTn−1+cna_n T_n = b_n T_{n-1} + c_nanTn=bnTn1+cn
  2. 构造求和因子:使用 sn=an−1⋯a1bn⋯b2s_n = \frac{a_{n-1} \cdots a_1}{b_n \cdots b_2}sn=bnb2an1a1
  3. 乘以求和因子:得到 Sn=Sn−1+sncnS_n = S_{n-1} + s_n c_nSn=Sn1+sncn
  4. 求和求解Sn=S0+∑k=1nskckS_n = S_0 + \sum_{k=1}^n s_k c_kSn=S0+k=1nskck
  5. 还原原变量Tn=SnsnanT_n = \frac{S_n}{s_n a_n}Tn=snanSn

[!NOTE]

河内塔如何用这套方法解决:

  1. 标准形式1⋅Tn=2⋅Tn−1+11 \cdot T_n = 2 \cdot T_{n-1} + 11Tn=2Tn1+1
  2. 求和因子sn=12ns_n = \frac{1}{2^n}sn=2n1
  3. 变换Tn2n=Tn−12n−1+12n\frac{T_n}{2^n} = \frac{T_{n-1}}{2^{n-1}} + \frac{1}{2^n}2nTn=2n1Tn1+2n1
  4. 求和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=12n1
  5. 还原Tn=2n−1T_n = 2^n - 1Tn=2n1
应用:快速排序

[!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=0n1Ck,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=0n1Ck,n>1

nnn 替换为 n−1n-1n1(要求 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 (n1)Cn1=(n1)2+(n1)+2k=0n2Ck

两式相减,消去求和号:
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(n1)Cn1=[n2+n][(n1)2+(n1)]+2Cn1
=(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)(n22n+1+n1)+2Cn1=2n+2Cn1

整理得:
nCn=(n+1)Cn−1+2n,n>2 n C_n = (n+1) C_{n-1} + 2n, \quad n > 2 nCn=(n+1)Cn1+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=2n2[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 = 01C1=0,右边为 2C0+2⋅1=0+2=22 C_0 + 2\cdot1 = 0 + 2 = 22C0+21=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 = 623=6,右边:3C1+2⋅2=0+4=43 C_1 + 2\cdot2 = 0 + 4 = 43C1+22=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=bnb2an1a1=(n+1)n3(n1)!=(n+1)!(n1)!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=1nskck)

已知:

  • C0=0C_0 = 0C0=0s1b1C0=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)2snan=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=1nskck=2n+1k=1nskck

我们有:
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=2k2[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=sk2k2sk[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}sk2k=k(k+1)22k=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 = -22s1=2122=21=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=+2232=+231=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=1nskck=k=1nk+142[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=1nskck=4k=1nk+112δk1+2δk2=4k=1nk+112+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=1nskck=4k=1nk+1134

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=1nskck=2n+1(4k=1nk+1134)=2n+14(k=1nk+1131)

=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=1nk+1131)=2(n+1)k=1nk+1132(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=1nk+1132(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=1nk1(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=1nk+11=Hn+11,其中 Hn+1=k=1n+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+11)32(n+1)=2(n+1)(Hn+134)
验证小值:

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)(61134)=6(61168)=663=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)(122534)=8(12251216)=8129=6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值