和式

一、记号

  • 用求和记号可以很好地将很长的式子变为一个较短的式子。
    \[a_1+a_2+a_3+\dots+a_{n-1}+a_n=\sum_{i=1}^n a_i\]
  • \(\sum\) 下面是下界,上面是求和的上界。上面的式子也可以这样写:
    \[a_1+a_2+a_3+\dots+a_{n-1}+a_n=\sum_{1 \le i \le n} a_i\]
  • 这样的式子迭代性很强,可以多重求和: \(\displaystyle\sum_i\Big(\sum_ja_i+b_j\Big)\)
  • 假设要算100内奇数平方的和,可以这样写: \(\displaystyle\sum_{k=1}^{100}k^2\ [k为奇数]\) (隐式表达)
    也可以这样: \(\displaystyle\sum_{k=0}^{49}(2k+1)^2\) (显示表达)

  • \([P(i)]\),表示一个判断条件。
    \[[P(i)]=\begin{cases} 1 &P(i)成立 \\ 0 &P(i)不成立 \end{cases}\]

    例如 \(\sum_d [n|d]\) 表示\(n\)的因数个数。

    也就是说和式的条件也可以写在里面:
    \[a_1+a_2+a_3+\dots+a_{n-1}+a_n=\sum_i a_i[1 \le i \le n]\]

二、和式的计算

  • 分配律: \(\displaystyle\sum_i a_i\times b=b\times\sum_i a_i\)
  • 结合律: \(\displaystyle\sum_{i=1}^n a_i+\sum_{i=1}^n b_i=\sum_{i=1}^n a_i+b_i\)
  • 广义分配律: \(\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)\)
  • 交换求和顺序: \(\displaystyle\sum_i\Big(\sum_ja_{i,j}[P(i,j)]\Big)=\sum_j\Big(\sum_ia_{i,j}[P(i,j)]\Big)\)

三、应用

求 \(\displaystyle\sum_{1\le j<k\le n}{1\over k-j}\) 的值?

\(\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}\)
简单的运算把两重循环变为了一重循环,很好的降低了时间复杂度。

上一篇:Summation Order


下一篇:wiki搬运,排序算法