<学习笔记>《具体数学》
第一章--递归问题
引用了三道例题: 河内塔/汉诺塔, 平面上的直线, 约瑟夫问题
主要涉及方法: 数学归纳法, 成套方法
1.1--利用数学归纳法, 判断观察得到的结论对于递归式子是否成立
1.2--成套方法, 解递归式子(感觉类似于解方程)
例如
\(f(1)=a\\ f(2n)=2f(n)+b\\ f(2n+1)=2f(n)+c\)
我们可以设\(f(n)=A(n)a+B(n)b+C(n)c\)
然后我们取\((a,b,c)=(1,0,0)\)可以得到第一组式子
\(f(n)=A(n)\\ A(1)=a\\ A(2n)=2A(n)\\ A(2n+1)=2A(n) \ (1)\)
接着我们反过来使用递归式子和结论式子
即令\(\forall n f(n)=1\)
\(1=a\\ 1=2*1+b\\ 1=2*1+c\\\)
从而得到一组可能的\((a,b,c)=(1,-1,-1)\)
然后得到\(1=f(n)=A(n)-B(n)-C(n) (2)\)
以此类推, 我们还可以设\(\forall n \in R\ f(n)=n\)
得到另一组可能的\((a,b,c)=(1,0,1)\)
然后得到\(A(n)+C(n)=n (3)\)
令\(f(n)=n^i……\)
即可解出A(n), B(n), C(n)的表达式
第二章--求和
2.1--求和符号\(\sum\)
通过中括号[]可以用来表示命题P是否成立[P](成立为1, 不成立为0)
\(\sum_{p=1}^n[p是素数]\)可以表示1~n中的素数个数
\(\sum_{p=1}^n[p为素数]/p\)则表示1~n中的素数的倒数和, 当n很大时, 该式子的值近似于\(ln\ ln\ n \ + \ M\),其中\(M=0.261497212\), 被称作麦尔滕常数
2.2--和式与递归式
1.和式与递归式能够相互转化
例如:\(S_n=\sum_{k=1}^n k\) 等价于递归式子
\(S_1=1\\ S_n=S_{n-1}+n (n>0)\)
因此能够用第一章中求递归式子的成套方法来求解和式
例如:\(S_n=\sum_{k=0}^n(a+bk)\)
可以设$S(n)=A(n)a+B(n
2.求和因子\(s_n\)--解形如\(a_nT_n=b_nT_{n-1}+c_n\)的递推式
理论:
\(a_nT_n=b_nT_{n-1}+c_n\\ s_na_nT_n=s_nb_nT_{n-1}+s_nc_n\\\)
令\(s_{n-1}a_{n-1}=s_nb_n\)
可得\(s_na_nT_n=s_{n-1}a_{n-1}T_{n-1}+s_nc_n\)
设\(S_n=s_na_nT_n\)
则有\(S_n=S_n-1+s_nc_n\)
这是一个标准的和式结构\(S_n=\sum_{k=1}^n s_kc_k+S_0\)
则\(s_na_nT_n=\sum_{k=1}^n s_kc_k+s_0a_0T_0\)
由于a_0没有定义
所以\(s_na_nT_n=\sum_{k=1}^n s_kc_k+s_1b_1T_0\)
求和因子的选取:
因为\(s_nb_n=s_{n-1}a_{n-1}\)
则\(s_n=\frac{s_{n-1}\ a_{n-1}}{b_n}=s_{n-1}\frac{a_{n-1}}{b_n}\)
可以得到\(s_n=s_1\prod_{k=2}^{n-1}\frac{a_k}{b_{k+1}}\)
因为\(T_1=(s_1b_1T_0+s_1c_1)/s_1a_1=(b_1T_0+c_1)/a_1\)
可知\(s_1\)为和值对\(T_1\)无影响
因此我们可以归纳为\(s_n=\prod_{k=1}^{n-1}\frac{a_k}{b_{k+1}}\)
3.调和级数\(H_n\)与求解递归式的技巧
例如:
\(C_0=C_1=0\)
\(C_n=n+1+\frac{2}{n}\sum_{k=1}^{n-1}C_k\)
可以发现存在\(\sum\)存在\(\frac{1}{n}\)不容易求出较快的求出\(C_n\)
可以利用两边同时\(\times n\)来解决\(\frac{1}{n}\)的问题
利用\((n-1)C_{n-1}=(n-1)^2+(n-1)+2\sum_{k=1}^{n-2}C_k\)
\(nC_n-(n-1)C_{n-1}=2n-1+1+2C_{n-1}\)
从而得出\(C_n\)与\(C_{n-1}\)的关系
\(H_n=\sum_{k=1}^n\frac{1}{k}\)
当n足够大的时候, \(H_n\approx lnx\)
2.3--和式的处理
1.三个基本定律
分配律:\(\sum_{k=1}^nC\cdot a_k=\C\sum_{k=1}^na_k\)
结合律:\(\sum_{k=1}^n(a_k+b_k)=\sum_{k=1}^na_k+\sum_{k=1}^nb_k\)
交换律:\(\sum_{k\in N}a_k\)=\(\sum_{p(k)\in N}a_{p(k)}\)
2.扰动法求解和式
思想:把最后一项和第一项分出来, 来达到求解和式的封闭形式的问题
类似于这样:
令\(S_n=\sum_{k=0}^na_k\)
\(S_n+a_{n+1}=S_0+\sum_{k=1}^{n+1}a_k\)
交换律:\(S_n+a_{n+1}=S_0+\sum_{k=0}^{n}a_{k+1}\)
如果可以获得\(a_{k+1}\)与\(a_k\)的关系, 我们就有可能把后面那个和式用\(S_n\)表达出来
比如
\(S_n=\sum_{k=0}^nk\cdot2^k\)
\(S_n+(n+1)2^{n+1}\\=S_0+\sum_{k=1}^{n+1}k2^k\\=S_0+\sum_{k=0}^n(k+1)2^(k+1)\\=S_0+2\sum_{k=0}^n(k+1)2^k\\=S_0+\sum_{k=0}^n(k2^k+2^k)\\=S_0+S_n+\sum_{k=0}^n2^k\)
2.4--多重和式
1.交换求和次序的基本法则:
\(\sum_{j=1}^n\sum_{k=1}^na_jb_k=(\sum_{j=1}^na_j)(\sum_{k=1}^nb_k)\)
也即我们可以通过对和式的变形, 使得和式相对的好求
(实质上是结合律)
该法则的变形可以有:
\(\sum_{j=1}^n\sum_{k=j}^na_{j,k}=\sum_{1\leq j\leq k\leq n}a_{j,k}=\sum_{k=1}^n\sum_{j=1}^ka_{j,k}\)
通常情况下会有一个和式比另一个和式好算的情况出现
例如:
\(S_n=\sum_{1\leq j<k+j\leq n}\frac{1}{k}\)
关于这个和式我们可以这么变换
\(\sum_{1\leq j<k+j\leq n}\frac{1}{k}=\sum_{j=1}^n\sum_{k=1}^{n-j}\frac{1}{k}\)
我们会发现这样并不好计算
于是我们可以这么变换, 把k放到前面来
于是这个式子就变成了\(\sum_{1\leq j<k+j\leq n}\frac{1}{k}=\sum_{k=1}^n\sum_{j=1}^{n-k}\frac{1}{k}\)
于是这个式子的结果就变成了\(S_n=\sum_{k=1}^n\frac{n-k}{k}=n\sum_{k=1}^n\frac{1}{k}-n\)
而\(\sum_{k=1}^n\frac{1}{k}=H_n\)
2.如果一个和式\(S_n=\sum_{j=1}^n\sum_{k=1}^ja_{j,k}=\sum_{k=1}^n\sum_{j=1}^ka_{k,j}\)
我们称该式子具有对称性(也即\(a_{j,k}=a_{k,j}\))
遇到这种式子我们可以这么处理
利用\([1\leq j\leq k\leq n]+[1\leq k\leq j\leq n]=[1\leq j,k\leq n]+[1\leq j=k\leq n]\)来化简和式
或者是利用\([1\leq j< k\leq n]+[1\leq k< j\leq n]=[1\leq j,k\leq n]-[1\leq j=k\leq n]\)
这个\(n^2\)的矩阵可以通过两个序列相乘得到, 也即\(a_{j,k}=b_jc_k\)那么我们可以把后面这个\([1\leq j,k\leq n]\)的部分化简成单重和式, 从而降低求解的难度