<学习笔记>《具体数学》

第一章–递归问题

引用了三道例题: 河内塔/汉诺塔, 平面上的直线, 约瑟夫问题

主要涉及方法: 数学归纳法, 成套方法

1.1–利用数学归纳法, 判断观察得到的结论对于递归式子是否成立

1.2–成套方法, 解递归式子(感觉类似于解方程)

例如

f ( 1 ) = a f ( 2 n ) = 2 f ( n ) + b f ( 2 n + 1 ) = 2 f ( n ) + c f(1)=a\\ f(2n)=2f(n)+b\\ f(2n+1)=2f(n)+c f(1)=af(2n)=2f(n)+bf(2n+1)=2f(n)+c

​ 我们可以设 f ( n ) = A ( n ) a + B ( n ) b + C ( n ) c f(n)=A(n)a+B(n)b+C(n)c f(n)=A(n)a+B(n)b+C(n)c

​ 然后我们取 ( a , b , c ) = ( 1 , 0 , 0 ) (a,b,c)=(1,0,0) (a,b,c)=(1,0,0)可以得到第一组式子

f ( n ) = A ( n ) A ( 1 ) = a A ( 2 n ) = 2 A ( n ) A ( 2 n + 1 ) = 2 A ( n )   ( 1 ) f(n)=A(n)\\ A(1)=a\\ A(2n)=2A(n)\\ A(2n+1)=2A(n) \ (1) f(n)=A(n)A(1)=aA(2n)=2A(n)A(2n+1)=2A(n) (1)

​ 接着我们反过来使用递归式子和结论式子

​ 即令 ∀ n f ( n ) = 1 \forall n f(n)=1 nf(n)=1

1 = a 1 = 2 ∗ 1 + b 1 = 2 ∗ 1 + c 1=a\\ 1=2*1+b\\ 1=2*1+c\\ 1=a1=21+b1=21+c

​ 从而得到一组可能的 ( a , b , c ) = ( 1 , − 1 , − 1 ) (a,b,c)=(1,-1,-1) (a,b,c)=(1,1,1)

​ 然后得到 1 = f ( n ) = A ( n ) − B ( n ) − C ( n ) ( 2 ) 1=f(n)=A(n)-B(n)-C(n) (2) 1=f(n)=A(n)B(n)C(n)(2)

​ 以此类推, 我们还可以设 ∀ n ∈ R   f ( n ) = n \forall n \in R\ f(n)=n nR f(n)=n

​ 得到另一组可能的 ( a , b , c ) = ( 1 , 0 , 1 ) (a,b,c)=(1,0,1) (a,b,c)=(1,0,1)

​ 然后得到 A ( n ) + C ( n ) = n ( 3 ) A(n)+C(n)=n (3) A(n)+C(n)=n(3)

​ 令 f ( n ) = n i … … f(n)=n^i…… f(n)=ni

​ 即可解出 A ( n ) A(n) A(n), B ( n ) B(n) B(n), C ( n ) C(n) C(n)的表达式

第二章–求和

2.1–求和符号 ∑ \sum

通过中括号[]可以用来表示命题P是否成立[P](成立为1, 不成立为0)

∑ p = 1 n [ p 是 素 数 ] \sum_{p=1}^n[p是素数] p=1n[p]可以表示1~n中的素数个数

∑ p = 1 n [ p 为 素 数 ] / p \sum_{p=1}^n[p为素数]/p p=1n[p]/p则表示1~n中的素数的倒数和, 当n很大时, 该式子的值近似于 l n   l n   n   +   M ln\ ln\ n \ + \ M ln ln n + M,其中 M = 0.261497212 M=0.261497212 M=0.261497212, 被称作麦尔滕常数

2.2–和式与递归式

​ 1.和式与递归式能够相互转化

​ 例如: S n = ∑ k = 1 n k S_n=\sum_{k=1}^n k Sn=k=1nk 等价于递归式子

S 1 = 1 S n = S n − 1 + n ( n > 0 ) S_1=1\\ S_n=S_{n-1}+n (n>0) S1=1Sn=Sn1+n(n>0)

​ 因此能够用第一章中求递归式子的成套方法来求解和式

​ 例如: S n = ∑ k = 0 n ( a + b k ) S_n=\sum_{k=0}^n(a+bk) Sn=k=0n(a+bk)

​ 可以设 S ( n ) = A ( n ) a + B ( n ) b S(n)=A(n)a+B(n)b S(n)=A(n)a+B(n)b

​ 2.求和因子 s n s_n sn–解形如 a n T n = b n T n − 1 + c n a_nT_n=b_nT_{n-1}+c_n anTn=bnTn1+cn的递推式

理论:

a n T n = b n T n − 1 + c n s n a n T n = s n b n T n − 1 + s n c n a_nT_n=b_nT_{n-1}+c_n\\ s_na_nT_n=s_nb_nT_{n-1}+s_nc_n\\ anTn=bnTn1+cnsnanTn=snbnTn1+sncn

​ 令 s n − 1 a n − 1 = s n b n s_{n-1}a_{n-1}=s_nb_n sn1an1=snbn

​ 可得 s n a n T n = s n − 1 a n − 1 T n − 1 + s n c n s_na_nT_n=s_{n-1}a_{n-1}T_{n-1}+s_nc_n snanTn=sn1an1Tn1+sncn

​ 设 S n = s n a n T n S_n=s_na_nT_n Sn=snanTn

​ 则有 S n = S n − 1 + s n c n S_n=S_n-1+s_nc_n Sn=Sn1+sncn

​ 这是一个标准的和式结构 S n = ∑ k = 1 n s k c k + S 0 S_n=\sum_{k=1}^n s_kc_k+S_0 Sn=k=1nskck+S0

​ 则 s n a n T n = ∑ k = 1 n s k c k + s 0 a 0 T 0 s_na_nT_n=\sum_{k=1}^n s_kc_k+s_0a_0T_0 snanTn=k=1nskck+s0a0T0

​ 由于 a 0 a_0 a0没有定义

​ 所以 s n a n T n = ∑ k = 1 n s k c k + s 1 b 1 T 0 s_na_nT_n=\sum_{k=1}^n s_kc_k+s_1b_1T_0 snanTn=k=1nskck+s1b1T0

求和因子的选取:

​ 因为 s n b n = s n − 1 a n − 1 s_nb_n=s_{n-1}a_{n-1} snbn=sn1an1

​ 则 s n = s n − 1   a n − 1 b n = s n − 1 a n − 1 b n s_n=\frac{s_{n-1}\ a_{n-1}}{b_n}=s_{n-1}\frac{a_{n-1}}{b_n} sn=bnsn1 an1=sn1bnan1

​ 可以得到 s n = s 1 ∏ k = 2 n − 1 a k b k + 1 s_n=s_1\prod_{k=2}^{n-1}\frac{a_k}{b_{k+1}} sn=s1k=2n1bk+1ak

​ 因为 T 1 = ( s 1 b 1 T 0 + s 1 c 1 ) / s 1 a 1 = ( b 1 T 0 + c 1 ) / a 1 T_1=(s_1b_1T_0+s_1c_1)/s_1a_1=(b_1T_0+c_1)/a_1 T1=(s1b1T0+s1c1)/s1a1=(b1T0+c1)/a1

​ 可知 s 1 s_1 s1为和值对 T 1 T_1 T1无影响

​ 因此我们可以归纳为 s n = ∏ k = 1 n − 1 a k b k + 1 s_n=\prod_{k=1}^{n-1}\frac{a_k}{b_{k+1}} sn=k=1n1bk+1ak

​ 3.调和级数 H n H_n Hn与求解递归式的技巧

例如:
C 0 = C 1 = 0 C_0=C_1=0 C0=C1=0
C n = n + 1 + 2 n ∑ k = 1 n − 1 C k C_n=n+1+\frac{2}{n}\sum_{k=1}^{n-1}C_k Cn=n+1+n2k=1n1Ck

​ 可以发现存在 ∑ \sum 存在 1 n \frac{1}{n} n1不容易求出较快的求出 C n C_n Cn

​ 可以利用两边同时 × n \times n ×n来解决 1 n \frac{1}{n} n1的问题

​ 利用 ( n − 1 ) C n − 1 = ( n − 1 ) 2 + ( n − 1 ) + 2 ∑ k = 1 n − 2 C k (n-1)C_{n-1}=(n-1)^2+(n-1)+2\sum_{k=1}^{n-2}C_k (n1)Cn1=(n1)2+(n1)+2k=1n2Ck

n C n − ( n − 1 ) C n − 1 = 2 n − 1 + 1 + 2 C n − 1 nC_n-(n-1)C_{n-1}=2n-1+1+2C_{n-1} nCn(n1)Cn1=2n1+1+2Cn1

​ 从而得出 C n C_n Cn C n − 1 C_{n-1} Cn1的关系

H n = ∑ k = 1 n 1 k H_n=\sum_{k=1}^n\frac{1}{k} Hn=k=1nk1

​ 当n足够大的时候, H n ≈ l n x H_n\approx lnx Hnlnx

2.3–和式的处理

​ 1.三个基本定律

​ 分配律: ∑ k = 1 n C ⋅ a k = C ∑ k = 1 n a k \sum_{k=1}^nC\cdot a_k=C\sum_{k=1}^na_k k=1nCak=Ck=1nak

​ 结合律: ∑ k = 1 n ( a k + b k ) = ∑ k = 1 n a k + ∑ k = 1 n b k \sum_{k=1}^n(a_k+b_k)=\sum_{k=1}^na_k+\sum_{k=1}^nb_k k=1n(ak+bk)=k=1nak+k=1nbk

​ 交换律: ∑ k ∈ N a k \sum_{k\in N}a_k kNak​​= ∑ p ( k ) ∈ N a p ( k ) \sum_{p(k)\in N}a_{p(k)} p(k)Nap(k)

​ 2.扰动法求解和式

​ 思想:把最后一项和第一项分出来, 来达到求解和式的封闭形式的问题

​ 类似于这样:

​ 令 S n = ∑ k = 0 n a k S_n=\sum_{k=0}^na_k Sn=k=0nak

S n + a n + 1 = S 0 + ∑ k = 1 n + 1 a k S_n+a_{n+1}=S_0+\sum_{k=1}^{n+1}a_k Sn+an+1=S0+k=1n+1ak

​ 交换律: S n + a n + 1 = S 0 + ∑ k = 0 n a k + 1 S_n+a_{n+1}=S_0+\sum_{k=0}^{n}a_{k+1} Sn+an+1=S0+k=0nak+1

​ 如果可以获得 a k + 1 a_{k+1} ak+1 a k a_k ak的关系, 我们就有可能把后面那个和式用 S n S_n Sn表达出来

​ 比如

S n = ∑ k = 0 n k ⋅ 2 k S_n=\sum_{k=0}^nk\cdot2^k Sn=k=0nk2k

S n + ( n + 1 ) 2 n + 1 = S 0 + ∑ k = 1 n + 1 k 2 k = S 0 + ∑ k = 0 n ( k + 1 ) 2 ( k + 1 ) = S 0 + 2 ∑ k = 0 n ( k + 1 ) 2 k = S 0 + ∑ k = 0 n ( k 2 k + 2 k ) = S 0 + S n + ∑ k = 0 n 2 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 Sn+(n+1)2n+1=S0+k=1n+1k2k=S0+k=0n(k+1)2(k+1)=S0+2k=0n(k+1)2k=S0+k=0n(k2k+2k)=S0+Sn+k=0n2k

2.4–多重和式

​ 1.交换求和次序的基本法则:

∑ j = 1 n ∑ k = 1 n a j b k = ( ∑ j = 1 n a j ) ( ∑ k = 1 n b k ) \sum_{j=1}^n\sum_{k=1}^na_jb_k=(\sum_{j=1}^na_j)(\sum_{k=1}^nb_k) j=1nk=1najbk=(j=1naj)(k=1nbk)

​ 也即我们可以通过对和式的变形, 使得和式相对的好求

​ (实质上是结合律)

​ 该法则的变形可以有:

∑ j = 1 n ∑ k = j n a j , k = ∑ 1 ≤ j ≤ k ≤ n a j , k = ∑ k = 1 n ∑ j = 1 k a j , 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} j=1nk=jnaj,k=1jknaj,k=k=1nj=1kaj,k

​ 通常情况下会有一个和式比另一个和式好算的情况出现

​ 例如:

S n = ∑ 1 ≤ j < k + j ≤ n 1 k S_n=\sum_{1\leq j<k+j\leq n}\frac{1}{k} Sn=1j<k+jnk1

​ 关于这个和式我们可以这么变换

∑ 1 ≤ j < k + j ≤ n 1 k = ∑ j = 1 n ∑ k = 1 n − j 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} 1j<k+jnk1=j=1nk=1njk1​​

​ 我们会发现这样并不好计算

​ 于是我们可以这么变换, 把k放到前面来

​ 于是这个式子就变成了 ∑ 1 ≤ j < k + j ≤ n 1 k = ∑ k = 1 n ∑ j = 1 n − k 1 k \sum_{1\leq j<k+j\leq n}\frac{1}{k}=\sum_{k=1}^n\sum_{j=1}^{n-k}\frac{1}{k} 1j<k+jnk1=k=1nj=1nkk1

​ 于是这个式子的结果就变成了 S n = ∑ k = 1 n n − k k = n ∑ k = 1 n 1 k − n S_n=\sum_{k=1}^n\frac{n-k}{k}=n\sum_{k=1}^n\frac{1}{k}-n Sn=k=1nknk=nk=1nk1n

​ 而 ∑ k = 1 n 1 k = H n \sum_{k=1}^n\frac{1}{k}=H_n k=1nk1=Hn

​ 2.如果一个和式 S n = ∑ j = 1 n ∑ k = 1 j a j , k = ∑ k = 1 n ∑ j = 1 k a k , j S_n=\sum_{j=1}^n\sum_{k=1}^ja_{j,k}=\sum_{k=1}^n\sum_{j=1}^ka_{k,j} Sn=j=1nk=1jaj,k=k=1nj=1kak,j

​ 我们称该式子具有对称性(也即 a j , k = a k , j a_{j,k}=a_{k,j} aj,k=ak,j

​ 遇到这种式子我们可以这么处理

​ 利用 [ 1 ≤ j ≤ k ≤ n ] + [ 1 ≤ k ≤ j ≤ n ] = [ 1 ≤ j , k ≤ n ] + [ 1 ≤ j = k ≤ n ] [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] [1jkn]+[1kjn]=[1j,kn]+[1j=kn]来化简和式

​ 或者是利用 [ 1 ≤ j < k ≤ n ] + [ 1 ≤ k < j ≤ n ] = [ 1 ≤ j , k ≤ n ] − [ 1 ≤ j = k ≤ 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] [1j<kn]+[1k<jn]=[1j,kn][1j=kn]

​ 这个 n 2 n^2 n2的矩阵可以通过两个序列相乘得到, 也即 a j , k = b j c k a_{j,k}=b_jc_k aj,k=bjck那么我们可以把后面这个 [ 1 ≤ j , k ≤ n ] [1\leq j,k\leq n] [1j,kn]的部分化简成单重和式, 从而降低求解的难度

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值