\(\sum a_i[p_i]\)表示所有满足\(p_i\)的\(a_i\)的加和,也可以写成\(\sum_{p_i}a_i\),特别的,当\(p_i\)当且仅当\(m \le i\le n\)时成立时,可以写成\(\sum_{i=m}^na_i\),其中\([p_i]\)表示艾弗森约定
艾弗森约定
艾弗森约定表示当命题\(p\)为真时,\([p]=1\),当命题\(p\)为假时,\([p]=0\)
特别的,假如有\(a_i[p_i]\),在\(p_i\)为假时,即使\(a_i\)无意义,\(a_i[p_i]\)也等于\(0\)
三项运算法则
\(\sum_{k\in K} ca_k=c\sum_{k\in K} a_k\)
\(\sum_{k\in K}(a_k+b_k)=\sum_{k\in K}a_k+\sum_{k\in K}b_k\)
\(\sum_{k\in K}a_k=\sum_{p(k)\in K}a_k\)
其中\(p_k\)要保证是\(K\)中的双射,但是不限制其定义域
和式与递归式
和式-递归式
注意到
\[S_n=\sum_{k=0}^n a_k
\]
等价于
\[S_0=a_0
\]
\[S_n=S_{n-1}+a_n
\]
我们探讨一般的和式-递归式形式为
\[R_0=\alpha
\]
\[R_n=R_{n-1}+\beta+\gamma n
\]
它的封闭形式解可以写成
\[R_n=A(n)\alpha+B(n)\beta+C(n)\gamma
\]
递归式-和式
先用一个十分简单的小例子来引入
河内塔多项式
\[T_0=0
\]
\[T_n=2T_{n-1}+1
\]
两边同除\(2^n\),得到
\[\frac{T_0}{2^0}=0
\]
\[\frac{T_n}{2^n}=\frac{T_{n-1}}{2^{n-1}}+\frac1{2^n}
\]
令
\[S_n=\frac{T_n}{2^n}
\]
则
\[S_0=0
\]
\[S_n=S_{n-1}+2^{-n}
\]
由此得到
\[S_n=\sum_{k=1}^n2^{-k}
\]
我们舍弃了\(k=0\)时的项
显而易见,我们得到\(S_n\)的封闭形式(会在后面加以推导)
\[S_n=1-\frac1{2^n}
\]
可得
\[T_n=2^nS_n=2^n-1
\]
一般的,我们可以将任何形如
\[a_nT_n=b_nT_{n-1}+c_n
\]
的递归式转化成一个和式,其思想在于用一个求和因子(summation factor)\(s_n\)来乘两边
\[s_na_nT_n=s_nb_nT_{n-1}+s_nc_n
\]
因子\(s_n\)需要恰当的选取,使得
\[s_nb_n=s_{n-1}a_{n-1}
\]
设
\[S_n=s_na_nT_n
\]
则有
\[S_n=s_{n-1}+s_nc_n
\]
从而
\[S_n=s_0a_0T_0+\sum_{k=1}^ns_kc_k=s_1b_1T_0+\sum_{k=1}^ns_kc_k
\]
可得
\[T_n=\frac1{s_na_n}(s_1b_1T_0+\sum_{k=1}^ns_kc_k)
\]
那如何求\(s_n\)呢?,我们展开$$s_n=s_{n-1}\frac{a_{n-1}}{b_n}$$得到
\[s_n=\frac{a_{n-1}a_{n-2}...a_1}{b_nb_{n-1}...b_2}
\]
或者它的常数倍是一个合适的求和因子
我们应用到快速排序上
它的比较步骤平均次数为
\[C_0=C_1=0
\]
\[C_n=n+1+\frac2n\sum_{k=1}^{n-1}C_k
\]
两边同时乘\(n\),得
\[nC_n=n^2+n+2\sum_{k=2}^{n-1}C_k
\]
用\(n-1\)代替,得
\[(n-1)C_{n-1}=(n-1)^2+(n-1)+2\sum_{k=0}^{n-2}C_k
\]
相减消去求和号,得
\[nC_n-(n-1)C_{n-1}=2n+2C_{n-1}
\]
转化为
\[C_0=C_1=0,C_2=3
\]
\[nC_n=(n+1)C_{n-1}+2n
\]
用求和因子,得
\[s_n=\frac2{n(n+1)}
\]
的某个倍数
解出
\[C_n=2(n+1)\sum_{k=1}^n\frac1{k+1}-\frac23(n+1)
\]
我们定义调和级数
\[H_n=1+\frac12+...+\frac1n=\sum_{k=1}^n\frac1k
\]
求出
\[C_n=2(n+1)H_n-\frac83n-\frac23
\]
作者不想编了,连更未完结