一、记号
-
用求和记号可以很好地将很长的式子变为一个较短的式子。
a1+a2+a3+⋯+an−1+an=∑i=1naia_1+a_2+a_3+\dots+a_{n-1}+a_n=\sum_{i=1}^n a_ia1+a2+a3+⋯+an−1+an=i=1∑nai -
∑\sum∑ 下面是下界,上面是求和的上界。上面的式子也可以这样写:
a1+a2+a3+⋯+an−1+an=∑1≤i≤naia_1+a_2+a_3+\dots+a_{n-1}+a_n=\sum_{1 \le i \le n} a_ia1+a2+a3+⋯+an−1+an=1≤i≤n∑ai -
这样的式子迭代性很强,可以多重求和: ∑i(∑jai+bj)\displaystyle\sum_i\Big(\sum_ja_i+b_j\Big)i∑(j∑ai+bj)
-
假设要算100内奇数平方的和,可以这样写: ∑k=1100k2 [k为奇数]\displaystyle\sum_{k=1}^{100}k^2\ [k为奇数]k=1∑100k2 [k为奇数] (隐式表达)
也可以这样: ∑k=049(2k+1)2\displaystyle\sum_{k=0}^{49}(2k+1)^2k=0∑49(2k+1)2 (显示表达) -
[P(i)][P(i)][P(i)],表示一个判断条件。
[P(i)]={1P(i)成立0P(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] 表示nnn的因数个数。
也就是说和式的条件也可以写在里面:
a1+a2+a3+⋯+an−1+an=∑iai[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]
二、和式的计算
- 分配律: ∑iai×b=b×∑iai\displaystyle\sum_i a_i\times b=b\times\sum_i a_ii∑ai×b=b×i∑ai
- 结合律: ∑i=1nai+∑i=1nbi=∑i=1nai+bi\displaystyle\sum_{i=1}^n a_i+\sum_{i=1}^n b_i=\sum_{i=1}^n a_i+b_ii=1∑nai+i=1∑nbi=i=1∑nai+bi
- 广义分配律: ∑i(∑jf(i)g(j)[P(i)][Q(j)])=(∑if(i)[P(i)])(∑jg(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(∑jai,j[P(i,j)])=∑j(∑iai,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≤n1k−j\displaystyle\sum_{1\le j<k\le n}{1\over k-j}1≤j<k≤n∑k−j1 的值?
解:原式=∑j=1n−1(∑k=j+1n1k−j)=∑j=1n−1(∑k−j=1n−j1k−j)=∑j=1n−1(∑k=1n−j1k)=∑k=1n(∑j=1n−k1k)=∑k=1n(1k∑j=1n−k1)=∑k=1n1k(n−k)=n∑k=1n1k−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
简单的运算把两重循环变为了一重循环,很好的降低了时间复杂度。