精华 推荐

和式的操作:从分配律到多重求和,一篇讲清常见变形技巧

黑大帅 2026-4-15 16:22:09 15 浏览 0 点赞 0 收藏

和式的操作:从分配律到多重求和,一篇讲清常见变形技巧

很多同学一见到和式,就习惯“直接算”。
但实际上,和式真正厉害的地方,从来都不是硬算,而是变形

你可以把它理解成:
求和不是结束计算,而是开始操作。

这篇文章就系统整理一下和式处理中最常见、最实用的一些方法:

  • 和式的三大基本法则

  • 等差和的经典推导

  • 用指标函数描述“求和范围”

  • 二重和式与换序

  • 三角区域求和

  • 扰动法与构造法

  • 一个经典恒等式的推导

  • 调和和式的二维转一维技巧

希望看完之后,你再遇到复杂求和,不会只想着“暴力展开”,而是能想到:这个式子能不能变一下?


一、和式的三大基本操作

和式最基础的三个法则,其实就是你熟悉的加法和乘法在“求和符号”下的延续:

1. 分配律

kKcak=ckKak\sum_{k\in K} c a_k = c \sum_{k\in K} a_k

这表示常数可以直接提出求和号。

本质上就是:

ca1+ca2++can=c(a1+a2++an)ca_1+ca_2+\cdots+ca_n = c(a_1+a_2+\cdots+a_n)

2. 结合律

$$\sum_{k\in K}(a_k+b_k)=\sum_{k\in K}a_k+\sum_{k\in K}b_k $$

这说明如果每一项本身是“两个量的和”,那么可以拆成两个和式分别算。

这在做式子拆分时非常常见,尤其是遇到:

  • 多项式

  • 差分

  • 递推展开

  • 多重和式中的被加数拆分


3. 交换律(重排)

kKak=p(k)Kap(k)\sum_{k\in K} a_k = \sum_{p(k)\in K} a_{p(k)}

其中 p(k)p(k) 表示对下标做一个排列。

意思很简单:
有限和式里,求和顺序不影响结果。

这条性质在很多技巧里都非常关键,比如:

  • 倒序求和

  • 换元

  • 枚举顺序改变

  • 二重和式换序


二、等差和公式,其实就是“把和式倒过来”

考虑最经典的和式:

S=0kn(a+bk)S=\sum_{0\le k\le n}(a+bk)

也就是:

S=a+(a+b)+(a+2b)++(a+nb)S=a+(a+b)+(a+2b)+\cdots+(a+nb)

这是一个等差数列求和。

但它的经典推导,不是背公式,而是用“倒序重排”。

把它倒着写:

S=0nkn(a+b(nk))S=\sum_{0\le n-k\le n}(a+b(n-k))

也就是:

S=0kn(a+bnbk)S=\sum_{0\le k\le n}(a+bn-bk)

现在把两个 SS 相加:

2S=0kn((a+bk)+(a+bnbk))2S=\sum_{0\le k\le n}\bigl((a+bk)+(a+bn-bk)\bigr)

中间的 bkbkbk-bk 抵消,于是得到:

2S=0kn(2a+bn)2S=\sum_{0\le k\le n}(2a+bn)

因为 2a+bn2a+bn 是常量,可以提出:

2S=(2a+bn)0kn12S=(2a+bn)\sum_{0\le k\le n}1

0kn1=n+1\sum_{0\le k\le n}1=n+1

所以

2S=(2a+bn)(n+1)2S=(2a+bn)(n+1)

最后得到:

$$\sum_{k=0}^n (a+bk)=\left(a+\frac{bn}{2}\right)(n+1) $$

这就是等差数列求和公式。

这个推导的本质是什么?

不是“神奇配对”,而是两件事:

  1. 有限和式可以重排

  2. 两个和式可以逐项合并

这就是和式操作的威力。


三、用集合和指标函数来描述求和范围

很多时候,真正麻烦的不是“求和内容”,而是“求和范围”。

比如:

  • 只对偶数下标求和

  • 只对满足某些条件的下标求和

  • 两个集合相加、交、并的关系

这时候,一个非常好用的工具是指标函数


1. 指标函数写法

[kK][k\in K]

表示一个逻辑值:

  • kKk\in K,取 11

  • kKk\notin K,取 00

于是我们可以把“只在集合 KK 上求和”写成:

kKak=kak[kK]\sum_{k\in K} a_k = \sum_k a_k [k\in K]

这个式子非常重要。
它的意义是:

与其说“只对 KK 里的项求和”,不如说“对所有项求和,但不在 KK 里的那些项系数为 0”。

这一步,会让很多集合问题变成代数问题。


2. 一个非常有用的恒等式

如果 K,KK,K' 是两个集合,那么有:

$$\sum_{k\in K}a_k+\sum_{k\in K'}a_k = \sum_{k\in K\cap K'}a_k+\sum_{k\in K\cup K'}a_k $$

这其实就是集合版的“容斥”。

为什么对?

因为对于任意一个 kk,它在左右两边被计算的次数完全一样。

更本质地说,就是逻辑恒等式:

$$[k\in K]+[k\in K'] = [k\in K\cap K']+[k\in K\cup K'] $$

3. 一个简单应用

比如:

k=1mak+k=mnak\sum_{k=1}^{m}a_k+\sum_{k=m}^{n}a_k

注意中间的 ama_m 被算了两次,所以:

$$\sum_{k=1}^{m}a_k+\sum_{k=m}^{n}a_k = a_m+\sum_{k=1}^{n}a_k $$

这就是集合重叠导致的“多算一次”。


四、多重和式:像多重循环一样去理解

很多人一看到二重和式就发怵,其实你可以把它理解成程序里的二重循环。

比如:

jkaj,k\sum_{j}\sum_{k} a_{j,k}

就是:

  • 外层枚举 jj

  • 内层枚举 kk

  • aj,ka_{j,k} 全加起来

所以多重和式的核心问题通常有两个:

  1. 循环顺序能不能交换?

  2. 求和范围能不能拆开?


1. 无关变量可以分离

如果 jjkk 独立,并且被加数刚好是乘积形式 ajbka_jb_k,那么:

$$\sum_{j\in J,\,k\in K} a_jb_k = \left(\sum_{j\in J}a_j\right)\left(\sum_{k\in K}b_k\right) $$

这在竞赛里太常用了。

本质原因是:

  • 对固定的 jjaja_j 是常量

  • 对固定的 kkbkb_k 是常量

所以就能一步一步提出去。

这可以理解成二维矩阵中,每个格子是 ajbka_jb_k,把整个矩阵所有格子求和,等于按列求和再乘,或按行求和再乘。


2. 二重和式可以换序

如果枚举区域不变,那么:

jkaj,k=kjaj,k\sum_j\sum_k a_{j,k} = \sum_k\sum_j a_{j,k}

这就相当于:

  • 原来按行扫描矩阵

  • 现在按列扫描矩阵

只要区域一样,总和当然一样。


五、三角区域求和:换序时要先看清区域

多重和式最容易出错的地方,不是公式,而是范围

比如:

j=1nk=jnaj,k\sum_{j=1}^{n}\sum_{k=j}^{n} a_{j,k}

这表示:

  • jj 从 1 到 nn

  • 对每个 jjkkjjnn

也就是满足

1jkn1\le j\le k\le n

的所有点。

所以它也可以写成:

1jknaj,k\sum_{1\le j\le k\le n} a_{j,k}

而如果换成先枚举 kk,那么对固定的 kkjj 可以从 11kk,于是:

$$\sum_{j=1}^{n}\sum_{k=j}^{n} a_{j,k} = \sum_{k=1}^{n}\sum_{j=1}^{k} a_{j,k} $$

这个式子非常重要。

经验

看到二重和式,先别急着换序。
先把范围写成一个逻辑条件,比如:

1jkn1\le j\le k\le n

再重新描述它。

这比死记公式稳得多。


六、经典例子:求上三角和

考虑

S=1jknajakS=\sum_{1\le j\le k\le n} a_ja_k

也就是把所有满足 jkj\le kajaka_ja_k 加起来。

这是一个非常经典的式子。

我们知道:

$$\sum_{1\le j,k\le n} a_ja_k = \left(\sum_{k=1}^n a_k\right)^2 $$

这是整个矩阵的和。

而上三角和与下三角和是对称的,因此:

  • 整个矩阵 = 上三角 + 下三角 - 对角线

  • 又因为上三角 = 下三角

于是:

$$2S = \left(\sum_{k=1}^n a_k\right)^2 + \sum_{k=1}^n a_k^2 $$

所以:

$$\sum_{1\le j\le k\le n} a_ja_k = \frac{1}{2} \left( \left(\sum_{k=1}^n a_k\right)^2+\sum_{k=1}^n a_k^2 \right) $$

这个公式经常出现在:

  • 贡献法

  • 组合恒等式

  • 概率期望

  • 前缀和优化


七、扰动法:给和式“加一点东西”

有些和式硬求很难,但如果你给它“加一个合适的量”,反而会出现漂亮的抵消。

这就是常说的扰动法


例 1:求 k2k\sum k2^k

Sn=0knk2kS_n=\sum_{0\le k\le n}k2^k

考虑把它和 (n+1)2n+1(n+1)2^{n+1} 拼在一起:

Sn+(n+1)2n+1=0kn(k+1)2k+1S_n+(n+1)2^{n+1} = \sum_{0\le k\le n}(k+1)2^{k+1}

右边展开:

$$\sum_{0\le k\le n}k2^{k+1}+\sum_{0\le k\le n}2^{k+1} $$

即:

2Sn+(2n+22)2S_n+(2^{n+2}-2)

所以:

Sn+(n+1)2n+1=2Sn+2n+22S_n+(n+1)2^{n+1}=2S_n+2^{n+2}-2

整理得:

Sn=(n1)2n+1+2S_n=(n-1)2^{n+1}+2

例 2:推广到 kxk\sum kx^k

Sn=0knkxkS_n=\sum_{0\le k\le n}kx^k

同样考虑:

Sn+(n+1)xn+1=0kn(k+1)xk+1S_n+(n+1)x^{n+1} = \sum_{0\le k\le n}(k+1)x^{k+1}

右边拆开:

xSn+0knxk+1xS_n+\sum_{0\le k\le n}x^{k+1}

0knxk+1=xn+2xx1\sum_{0\le k\le n}x^{k+1}=\frac{x^{n+2}-x}{x-1}

于是:

Sn+(n+1)xn+1=xSn+xn+2xx1S_n+(n+1)x^{n+1}=xS_n+\frac{x^{n+2}-x}{x-1}

最终可解得:

$$\sum_{k=0}^{n} kx^k = \frac{x-(n+1)x^{n+1}+nx^{n+2}}{(1-x)^2},\quad x\ne 1 $$

这就是一个很标准的扰动法推导。


八、从二维变到一维:调和型和式

看一个很经典的和式:

Sn=1j<kn1kjS_n=\sum_{1\le j<k\le n}\frac{1}{k-j}

这个式子表面上是二重和式,但实际上能降成一维。


方法 1:先枚举 jj

对固定的 kk,令 t=kjt=k-j,那么 tt 会从 11k1k-1

于是:

Sn=k=1nj=1k11kjS_n=\sum_{k=1}^{n}\sum_{j=1}^{k-1}\frac{1}{k-j}

换元后变成:

Sn=k=1nt=1k11tS_n=\sum_{k=1}^{n}\sum_{t=1}^{k-1}\frac{1}{t}

也就是:

Sn=k=1nHk1S_n=\sum_{k=1}^{n}H_{k-1}

其中 HmH_m 表示调和数:

Hm=t=1m1tH_m=\sum_{t=1}^{m}\frac{1}{t}

所以:

Sn=k=0n1HkS_n=\sum_{k=0}^{n-1}H_k

方法 2:按差值分组

更直接一点。

固定差值 d=kjd=k-j
只要 dd 固定,1kj=1d\frac1{k-j}=\frac1d

而满足 1j<kn1\le j<k\le nkj=dk-j=d 的数对一共有 ndn-d 个。

所以:

Sn=d=1n1nddS_n=\sum_{d=1}^{n-1}\frac{n-d}{d}

拆开:

Sn=nd=1n11dd=1n11S_n=n\sum_{d=1}^{n-1}\frac1d-\sum_{d=1}^{n-1}1

于是:

Sn=nHn1(n1)S_n=nH_{n-1}-(n-1)

这就是最终结果。

这个思路本质上就是:
按“值相同的项”分组。


九、一个重要恒等式:(akaj)(bkbj)\sum(a_k-a_j)(b_k-b_j)

考虑

S=1j<kn(akaj)(bkbj)S=\sum_{1\le j<k\le n}(a_k-a_j)(b_k-b_j)

这个式子在不等式、排序理论、切比雪夫不等式中很常见。

展开:

(akaj)(bkbj)=akbkakbjajbk+ajbj(a_k-a_j)(b_k-b_j)=a_kb_k-a_kb_j-a_jb_k+a_jb_j

把整个和式展开后,通过换序与对称整理,可以得到一个非常漂亮的恒等式:

$$\left(\sum_{k=1}^{n}a_k\right)\left(\sum_{k=1}^{n}b_k\right) = n\sum_{k=1}^{n}a_kb_k - \sum_{1\le j<k\le n}(a_k-a_j)(b_k-b_j) $$

这意味着:

  • 如果 aabb 同序排列,则 (akaj)(bkbj)0(a_k-a_j)(b_k-b_j)\ge 0

  • 所以

    $$\left(\sum a_k\right)\left(\sum b_k\right)\le n\sum a_kb_k $$
  • 这就是切比雪夫不等式的一种形式

因此,求和恒等式不只是算数,它还能直接导出不等式。


十、函数映射视角:从枚举下标到枚举值

有时我们不是在枚举下标,而是在枚举一个函数的像。

f:JKf:J\to K,那么

jJaf(j)\sum_{j\in J} a_{f(j)}

可以改写为

kKak#f1(k)\sum_{k\in K} a_k \cdot \# f^{-1}(k)

这里

#f1(k)={jJf(j)=k}\#f^{-1}(k)=|\{j\in J\mid f(j)=k\}|

表示有多少个 jj 被映射到 kk

这句话特别重要,它的含义是:

对每个值 aka_k,它被加了多少次,就乘多少倍。

如果 ff 是双射,那么每个 kk 都恰好被取到一次,于是:

jJaf(j)=kKak\sum_{j\in J} a_{f(j)}=\sum_{k\in K} a_k

这就是“重排不改变有限和”的另一个角度。


十一、做和式题时,到底该看什么?

学完这些技巧之后,你可以形成一个固定的检查顺序。

每次拿到一个和式,先问自己这几个问题:

1. 能不能拆?

  • 有常数吗?

  • 有加法吗?

  • 能用分配律吗?


2. 能不能换顺序?

  • 是有限和吗?

  • 区间能不能重排?

  • 能不能换元?


3. 范围能不能改写?

  • 是不是一个集合条件?

  • 能不能写成指标函数?

  • 能不能画成二维区域?


4. 能不能按“等值项”分组?

比如:

  • kjk-j 分组

  • n/i\lfloor n/i\rfloor 分组

  • 按某个表达式的值相同的区间分组


5. 能不能降维?

  • 二重和式能不能变成一重?

  • 三角区域能不能变成长方形减去一部分?

  • 有没有对称性?


6. 能不能扰动?

  • 乘个常数?

  • 平移一项?

  • 加一个边界项?

  • 凑成望远镜求和或递推?


十二、结语

和式题看起来像“算”,实际上更像“整理”。

很多时候,真正决定难度的不是计算量,而是你能不能看出:

  • 哪些项可以提出去

  • 哪些区域可以换序

  • 哪些限制可以改写成指标函数

  • 哪些二重求和其实只是一个一重求和

所以,面对和式时,不要急着硬算。
先想一想:

这个式子能不能拆?
能不能换?
能不能看成区域?
能不能降维?

当你开始用这种眼光看和式,很多原本“看起来很难”的题,都会突然变得顺手。

评论

0 条
还没有评论。