一、记号
-
用求和记号可以很好地将很长的式子变为一个较短的式子。
a 1 + a 2 + a 3 + ⋯ + a n − 1 + a n = ∑ i = 1 n a i a_1+a_2+a_3+\dots+a_{n-1}+a_n=\sum_{i=1}^n a_i a1+a2+a3+⋯+an−1+an=i=1∑nai -
∑ \sum ∑ 下面是下界,上面是求和的上界。上面的式子也可以这样写:
a 1 + a 2 + a 3 + ⋯ + a n − 1 + a n = ∑ 1 ≤ i ≤ n a i a_1+a_2+a_3+\dots+a_{n-1}+a_n=\sum_{1 \le i \le n} a_i a1+a2+a3+⋯+an−1+an=1≤i≤n∑ai -
这样的式子迭代性很强,可以多重求和: ∑ i ( ∑ j a i + b j ) \displaystyle\sum_i\Big(\sum_ja_i+b_j\Big) i∑(j∑ai+bj)
-
假设要算100内奇数平方的和,可以这样写: ∑ k = 1 100 k 2 [ k 为 奇 数 ] \displaystyle\sum_{k=1}^{100}k^2\ [k为奇数] k=1∑100k2 [k为奇数] (隐式表达)
也可以这样: ∑ k = 0 49 ( 2 k + 1 ) 2 \displaystyle\sum_{k=0}^{49}(2k+1)^2 k=0∑49(2k+1)2 (显示表达) -
[ P ( i ) ] [P(i)] [P(i)],表示一个判断条件。
[ P ( i ) ] = { 1 P ( i ) 成 立 0 P ( i ) 不 成 立 [P(i)]=\begin{cases} 1 &P(i)成立 \\ 0 &P(i)不成立 \end{cases} [P(i)]={10P(i)成立P(i)不成立例如 ∑ d [ n ∣ d ] \sum_d [n|d] ∑d[n∣d] 表示 n n n的因数个数。
也就是说和式的条件也可以写在里面:
a 1 + a 2 + a 3 + ⋯ + a n − 1 + a n = ∑ i a i [ 1 ≤ i ≤ n ] a_1+a_2+a_3+\dots+a_{n-1}+a_n=\sum_i a_i[1 \le i \le n] a1+a2+a3+⋯+an−1+an=i∑ai[1≤i≤n]
二、和式的计算
- 分配律: ∑ i a i × b = b × ∑ i a i \displaystyle\sum_i a_i\times b=b\times\sum_i a_i i∑ai×b=b×i∑ai
- 结合律: ∑ i = 1 n a i + ∑ i = 1 n b i = ∑ i = 1 n a i + b i \displaystyle\sum_{i=1}^n a_i+\sum_{i=1}^n b_i=\sum_{i=1}^n a_i+b_i i=1∑nai+i=1∑nbi=i=1∑nai+bi
- 广义分配律: ∑ i ( ∑ j f ( i ) g ( j ) [ P ( i ) ] [ Q ( j ) ] ) = ( ∑ i f ( i ) [ P ( i ) ] ) ( ∑ j g ( j ) [ Q ( j ) ] ) \displaystyle\sum_i\Big(\sum_jf(i)g(j)[P(i)][Q(j)]\Big)=\Big(\sum_i f(i)[P(i)]\Big)\Big(\sum_j g(j)[Q(j)]\Big) i∑(j∑f(i)g(j)[P(i)][Q(j)])=(i∑f(i)[P(i)])(j∑g(j)[Q(j)])
- 交换求和顺序: ∑ i ( ∑ j a i , j [ P ( i , j ) ] ) = ∑ j ( ∑ i a i , j [ P ( i , j ) ] ) \displaystyle\sum_i\Big(\sum_ja_{i,j}[P(i,j)]\Big)=\sum_j\Big(\sum_ia_{i,j}[P(i,j)]\Big) i∑(j∑ai,j[P(i,j)])=j∑(i∑ai,j[P(i,j)])
三、应用
求 ∑ 1 ≤ j < k ≤ n 1 k − j \displaystyle\sum_{1\le j<k\le n}{1\over k-j} 1≤j<k≤n∑k−j1 的值?
解
:
原
式
=
∑
j
=
1
n
−
1
(
∑
k
=
j
+
1
n
1
k
−
j
)
=
∑
j
=
1
n
−
1
(
∑
k
−
j
=
1
n
−
j
1
k
−
j
)
=
∑
j
=
1
n
−
1
(
∑
k
=
1
n
−
j
1
k
)
=
∑
k
=
1
n
(
∑
j
=
1
n
−
k
1
k
)
=
∑
k
=
1
n
(
1
k
∑
j
=
1
n
−
k
1
)
=
∑
k
=
1
n
1
k
(
n
−
k
)
=
n
∑
k
=
1
n
1
k
−
1
\begin{aligned} 解:原式&=\sum_{j=1}^{n-1}\Big(\sum_{k=j+1}^n{1\over k-j}\Big) \\ &=\sum_{j=1}^{n-1}\Big(\sum_{k-j=1}^{n-j}{1\over k-j}\Big) \\ &=\sum_{j=1}^{n-1}\Big(\sum_{k=1}^{n-j}{1\over k}\Big) \\ &=\sum_{k=1}^{n}\Big(\sum_{j=1}^{n-k}{1\over k}\Big) \\ &=\sum_{k=1}^{n}\Big({1\over k}\sum_{j=1}^{n-k}1\Big) \\ &=\sum_{k=1}^{n}{1\over k}(n-k) \\ &=n\sum_{k=1}^{n}{1\over k}-1 \\ \end{aligned}
解:原式=j=1∑n−1(k=j+1∑nk−j1)=j=1∑n−1(k−j=1∑n−jk−j1)=j=1∑n−1(k=1∑n−jk1)=k=1∑n(j=1∑n−kk1)=k=1∑n(k1j=1∑n−k1)=k=1∑nk1(n−k)=nk=1∑nk1−1
简单的运算把两重循环变为了一重循环,很好的降低了时间复杂度。