组合数学总结

\(Day1\)

  • 简单格路问题:\(|(0,0)->(m,n)|={m+n \choose n}\qquad\)\(|(0,1)->(m,n)|(m>n)\)且不经过\(y=x\)方案数:所有经过\(y=x\)的方案树一定和\((1,0)->(m,n)\)的方案数一一对应。

  • \(Wallis\)公式:

    注:以下的\(n!!=\left\{\begin{array}{}1*3*5*...*n&\textrm{n%2=1}\\2*4*5*...*n & \textrm{n%2=0}\end{array} \right.\)
    \[ \lim_{k\to\infty}[\frac{2^{2k}(k)!^2}{(2k)!}]^2\frac{1}{2k+1}=\frac{\pi}{2} \]

    \[ \lim_{k\to\infty}[\frac{(2k)!!}{(2k-1)!!}]^2\frac{1}{2k+1}=\frac{\pi}{2} \]

    \[ \lim_{k\to\infty}[\frac{(2k)!!(2k)!!}{(2k)!}]^2\frac{1}{2k+1}=\frac{\pi}{2} \]

  • \(Stirling\)公式:\(n!\sim \sqrt{2\pi n}(\frac{n}{e})^n\)

\(Day2\)

  • \(Cayley\)定理:有\(n\)个顶点的树的个数为\(n^{n-2}\)

    对于一棵树,它一定和一个序列一一对应,下附证明:

    每次删去树的叶子中编号最小的节点及其连边,按删去顺序记下其相邻节点,最终生成序列\(b_1,b_2,...,b_{n-2}\),即树可以生成唯一的序列,下面只用证明序列可以生成唯一的树即可,我们观察这样的两个序列

    \(\left\{\begin{array}{}1,2,3,...,n\\b_1,b_2,b_3...,b_n\end{array} \right.\)

    我们找到第一个序列中的最小无重元\(k\)(最小的不在\(b\)中出现的数),它一定为树上最先删去的节点,\((k,b_{first})\)一定为最先删去的边,从第一个序列中去掉\(k\)\(b\)中去掉第一个数,重复执行这一过程,就可以还原唯一的一棵树。(有空补上一张图来说明

  • 全排列生成算法(生成一个全排列下一个排列,生成一个全排列的编号)

    • 生成下一个排列:对于一个排列\(P_1,P_2,...,P_n\),我们找到\(j=max\{P_i<P_{i+1}\},k=max\{P_i>P_j\}\)对换\(P_j,P_k\),将新后缀\(P_{j+1},...P_{k-1},P_j,P_{k+1},...P_n\)翻转即可。

    • 生成一个全排列的编号:我们生成一个被称为中介数的序列\(a\)即可,\(a_i=\Sigma[P_i>P_j](i<j\leq n)\)(即\(a_i\)\(P_i\)后面小于\(P_i\)的数的个数),则编号为:
      \[ Id=\sum^{n-1}_{i=1}a_i(n-i)! \]

    • 延伸:\(n!=(n-1)(n-1)!+(n-2)(n-2)!+...+1*1!+1\)

  • 多重集:元素可以多次出现的集合,设\(a_i\)出现\(n_i\)次,记含有\(k\)种不同元素的可重集为\(S=\{n_1a_1,n_2a_2,...n_ka_k\}\)

    • 排列:对于一个可重集\(S=\{n_1a_1,n_2a_2,...,n_ka_k\},n=\Sigma n_i\)从中选出\(r\)个元素做排列的个数\(N\)为:
      • \(r>n\)时,\(N=0\)
      • \(r=n\)时,\(N=\frac{n!}{n_1!n_2!...n_k!}\)
      • \(r<n,\forall n_i>r\)时,\(N=k^r\)
      • \(r<n,\exist n_i<r\)时,无通式,看情况。
    • 组合:对于一个可重集\(S=\{n_1a_1,n_2a_2,...,n_ka_k\},n=\Sigma n_i\)从中选出\(r\)个元素做组合的个数\(N\)为:

      • \(r>n\)时,\(N=0\)

      • \(r=n\)时,\(N=1\)

      • \(r<n,\forall n_i>r\)时,\(N={r+k-1 \choose r}\)

        证明如下:设有\(k\)类元素\(1,2,...k\)取出可重集\(b_1,b_2,...,b_k\),则有\(b_1\leq b_2\leq...\leq b_k\)。设\(c_i=b_i-i+1\),则一定有\(c_1\leq c_2\leq ...\leq c_k\leq k+r-1\),证毕。

        推论:\(S=\{n_1a_1,n_2a_2,...,n_ka_k\},r\geq k\),则\(S\)中每个元素至少取一个的\(r\)可重集组合为:\({r-1 \choose k-1}={r-1 \choose r-k}\)

      • \(r<n,\exist n_i<r\)时,无通式,看情况。

    • 不相邻组合:即要求从\(1,2,...,n\)中选出的数不相邻,方案数为:\({n-r+1 \choose r}\)

      证明如下:设\(b_1,b_2,...,b_r\)为取出的一个组合一定满足\(b_1<b_2<...<b_r\)且相邻的两数差\(\geq2\)

      \(c_i=b_i-i+1\),这样相当于去掉了相邻这一限制,一定满足\(c_1<c_2<...<c_r<n-r+1\)

  • 组合中的常用的公式(懒得附证明了,证法多样,常见的证法为分多种情况考虑):
    • \({n \choose r}={n \choose n-r}\)
    • \({n \choose r}={n-1 \choose r}+{n-1 \choose r-1}\)
    • \({n \choose n}+{n+1 \choose n}+{n+2 \choose n}+...+{n+r \choose n}={n+r+1 \choose n+1}\)
    • \({n \choose l}{l \choose r}={n \choose r}{n-r \choose l-r}\)
    • \({m \choose 0}+{m \choose 1}+{m \choose 2}+...+{m \choose m}=2^m\)(本条和下一条均与二项式定理有关)
    • \({m \choose 0}-{m \choose 1}+{m \choose 2}+...\pm {m \choose m}=0\)
    • \({m+n \choose r}={m \choose 0}{n \choose r}+{m \choose 1}{n \choose r-1}+{m \choose 2}{n \choose r-2}+...+{m \choose r}{n \choose 0}\)
    • \({m+n \choose m}={m \choose 0}{n \choose 0}+{m \choose 1}{n \choose 1}+{m \choose 2}{n \choose 2}+...+{m \choose m}{n \choose m},m\leq n\)

\(Day3\):

  • 母函数:对于数列\(C\),构造一个函数\(G(x)=C_0+C_1x_1+C_2x_2+C_3x_3+...\),我们称\(G(x)\)为序列\(C\)母函数。

    • 重要桥梁:\(\frac{1}{1-x}=1+x+x^2+x^3+...\)。(用等比数列即可证明)

    • 已知递推式,利用母函数求通项:(以下用\(Fibonacci\)数列\((F_n=F_{n-1}+F_{n-2},F_1=F_2=1)\)举例)

      • 列出母函数,代入递推式。
        \[ G(x)=F_1x+F_2x^2+F_3x^3+... \\\Rightarrow G(x)=F_1x+F_2x^2+(F_1+F_2)x^3+... \\\Rightarrow G(x)=x[G(x)-x]+x^2G(x)+x^2+x \\\Rightarrow G(x)=\frac{x}{1-x-x^2} \]
  • 将分母化为\((1-k_1x)(1-k_2x)...\)的形式
    \[ G(x)=\frac{x}{(1-\frac{1+\sqrt{5}}{2}x)(1-\frac{1-\sqrt{5}}{2}x)} \]

  • 用待定系数法母函数转化为\(G(x)=\frac{A_1}{1-k_1x}+\frac{A_2}{1-k_2x}+...\)
    \[ G(x)=\frac{\frac{1}{\sqrt{5}}}{1-\frac{1+\sqrt{5}}{2}x}+\frac{-\frac{1}{\sqrt{5}}}{1-\frac{1-\sqrt{5}}{2}x} \]

  • 对于每一个\(\frac{A_i}{1-k_ix}\),都可以化为\(A_i(1+k_ix+k_i^2x^2+...)\),然后比对系数,返回定义即可
    \[ \alpha=\frac{1+\sqrt{5}}{2},\beta=\frac{1-\sqrt{5}}{2} \\\Rightarrow F_n=\frac{\alpha^n-\beta^n}{\sqrt{5}} \]

  • 母函数的性质:

    • \[ b_k = \left\{ \begin{array}{ll}0 & k<l\\a_{k-l} & k\geq l\\\end{array} \right.\Rightarrow B(x)=x^lA(x) \]

    • \[ b_k=a_{k-l}\Rightarrow B(x)=[A(x)-\sum^{l-1}_{k=0}a_kx_k]/x^l \]

    • \[ b_k=\sum^k_{k=0}a_i\Rightarrow B(x)=\frac{A(x)}{1-x} \]

    • \[ \sum^\infty_{k=0}a_k\textrm{收敛},b_k=\sum^\infty_{k=0}a_k\Rightarrow B(x)=\frac{A(1)-xA(x)}{1-x} \]

    • \[ b_k=ka_k\Rightarrow B(x)=xA'(x)(A'(x)=\frac{d}{dx}A(x)) \]

    • \[ c_k=a_0b_k+a_1b_{k-1}+...+a_kb_0=\sum^k_{h=0}a_hb_{k-h}\Rightarrow C(x)=A(x)B(x) \]

    • \[ b_k=\frac{a_k}{1+k}\Rightarrow B(x)=\frac{1}{x}\int^x_0A(x)dx \]

  • 定义从\(n\)各不同元素中取出\(r\)个进行允许重复的组合为\(\mathbb{C}(n,r)\)
    • 递推式:\(\mathbb{C}(n,r)=\mathbb{C}(n-1,r)+\mathbb{C}(n,r-1)\)
    • \(\{\mathbb{C}(n,r)\}\)母函数为\(G_n(x)\),推出\(G_n(x)=(1-x)^{-n}\)
    • 对上式运用麦克劳林公式,得\(G_n(x)=1+nx+\frac{n(n+1)}{2!}x+...+\frac{n(n+1)...(n+r)}{(r+1)!}x^{r+1}\)
  • \(Fibonacci\)数列重要性质:
    • \(F_1+F_2+...+F_n=F_{n+2}-1\)
    • \(F_1+F_3+F_5+...+F_{2n-1}=F_{2n}\)
    • \(F_1^2+F_2^2+...+F_n^2=F_nF_{n+1}\)
  • 行列式(因为懒得打,就不写出来了),对于一个方程组:
    \[ \left\{\begin{array}{ll}a_{11}x_1+a_{12}x_2+...+a_{1n}x_n=b_n\\a_{21}x_1+a_{22}x_2+...+a_{2n}x_n=b_n\\...\\a_{n1}x_1+a_{n2}x_2+...+a_{nn}x_n=b_n\end{array} \right. \]

    • 我们定义\(D\)为由系数\(a_{ij}\)组成的行列式,\(D_j\)表示将第\(j\)列替换为\(b\)后的行列式,则有\(x_j=\frac{D_j}{D}\)

    • 定义\(D_{i,j}\)\(D\)去掉\(i\)\(j\)列后的行列式。

    • \(D=a_{i1}(-1)^{i+1}D_{i1}+a_{i2}(-1)^{i+2}D_{i2}+...a_{in}(-1)^{i+n}D_{in}\)

    • 实际上\(D\)就等于从距震中取\(n\)个数相乘,保证每行每列仅取一个数的所有方案答案和,每种方案的系数遵循正负对角线。

\(Day4:\)

  • 线性常系数齐次递推关系:

    • 定义:\(a_n+c_1a_{n-1}+c_2a_{n-2}+...+c_ka_{n-k}=0,a_0=d_0,a_1=d_1,...,a_{k-1}=d_{k-1}\)

    • \(C(x)=x^k+c_1x^{k-1}+...+c_k\)\(\{a_n\}\)的特征多项式

      • 我们将以下式子相加:
        \[ x^k(a_k+c_1a_{k-1}+c_2a_{k-2}+...+c_ka_0)=0\\ x^{k+1}(a_{k+1}+c_1a_k+c_2a_{k-1}+...+c_ka_1)=0\\ ...\\ x^n(a_n+c_1a_{n-1}+c_2a_{n-2}+...+c_ka_{n-k})=0\\ \Rightarrow \sum^k_{i=1}c_ix^iG(x)=\sum^{k-1}_{j=0}c_jx^j\sum^{k-1-j}_{i=0}a_ix_i=P(x) \]
    • \(C(x)=0\)在复数域上\(i\)个根为\(\alpha_1,\alpha_2,...,\alpha_i\),有\(C(x)=(x-\alpha_1)^{k_1}(x-\alpha_2)^{k_2}...(x-\alpha_i)^{k_i}\)

    • \[ \sum^k_{i=1}c_ix^i=x^kC(\frac{1}{x})\\ \Rightarrow G(x)=\frac{P(x)}{\overset{i}{\underset{j=1}{\prod}}(1-\alpha_jx)^{k_j}}\\ \Rightarrow G(x)=\sum^i_{t=1}\sum^{k_t}_{j=1}\frac{A_{tj}}{(1-\alpha_tx)^j}\\ \Rightarrow a_n=\sum^i_{t=1}\sum^{k_t}_{j=1}A_{tj}{n+j-1 \choose j}\alpha_t \]

      • 无重根:\(A_i\)用范德蒙德行列式求即可
        \[ a_n=\sum^{k}_{i=1}A_i\alpha_i^n \]
  • 共轭根:设\(\alpha_1,\alpha_2\)为一对共轭根,\(\alpha_1=\rho(cos\theta+isin\theta),\alpha_2=\rho(cos\theta-isin\theta)\)所以有:\(\frac{A_1}{1-\alpha_1x}+\frac{A_2}{1-\alpha_2x},x^n\)系数为\(A\rho^ncosn\theta+B\rho^nsinn\theta\)

  • \(k\)重根:\(a_n=(A_1+A_2n+A_3n^2+...+A_kn^{k-1})k^n\)

  • 整数的拆分:

    • \(a_1,a_2,a_3,...,a_n\)的砝码,各有\(b_1,b_2,b_3,...,b_n\)个,问能称出的重量及称法个数,母函数(组合):
      \[ G(x)=\prod^n_{i=1}(1+x^{a_i}+x^{a_i*2}+...+x^{a_i*b_i}) \]

    • 母函数拆开后,每一项的次数表示重量,系数表示该重量的方案数。

    • 设将\(n\)拆为\(1,2,3,...\)之和,允许重复的方案数为\(p_n\)\(\{p_n\}\)其母函数为:
      \[ G(x)=\prod^\infty_{i=1}(1-x^i)^{-1} \]

  • 设将\(n\)拆为\(1,2,3,...m\)之和,允许重复,且\(m\)至少出现一次的方案数为\(p'_n\)\(\{p'_n\}\)其母函数为:
    \[ G(x)=\prod^m_{i=1}(1-x^i)^{-1}-\prod^{m-1}{i=1}(1-x^i)^{-1} \]

    • 拆分数估计:\(p_n\leq e^{\sqrt{\frac{20}{3}n}}(p_n< e^{\sqrt{\frac{2}{3}n\pi}})\)证明略!!!
  • 指数型母函数(用于求排列):定义:\(G(x)=a_0+\frac{a_1}{1!}x+\frac{a_2}{2!}x^2+\frac{a_3}{3!}x^3...\)

    • \(a_1,a_2,a_3,...,a_n\)的元素,各有\(b_1,b_2,b_3,...,b_n\)个,问其取\(r\)个做排列的个数,母函数为:
      \[ G(x)=\prod^n_{i=1}(1+\frac{x^{1}}{1!}+\frac{x^{2}}{2!}+...+\frac{x^{b_i}}{b_i!}) \]

    • 母函数拆开后,\(x^r\)的系数化为\(\frac{t}{r!}\)形式后,\(t\)为取\(r\)个做排列的个数。

    • 常用式子:\(e^x\)的麦克劳林展开。

  • 错排:\(n\)个元素做排列,要求每个元素不在其位置上。(可用容斥和棋盘多项式理解)
    • \(D_n\)表示\(n\)个数的错排,有递推式:\(D_n=(n-1)(D_{n-1}+D_{n-2})\),即为任选一个数\(i\),和其他\(n-1\)个数一一互换,其余\(n-2\)个数错排的方案数与除\(i\)\(n-1\)个数错排,再将\(i\)和其他的数互换的方案数之和。
    • 将原式化为:\(D_n-nD_{n-1}=(-1)^n\),令\(G(x)=D_0+D_1x+\frac{D_2}{2!}x^2+\frac{D_3}{3!}x^3...\)
    • 带入化简得:\(G(x)=\frac{e^{-x}}{1-x}\),所以有\(D_n=(1-1+\frac{1}{2!}-\frac{1}{3!}+...\pm\frac{1}{n!})n!\)
  • \(Ferrer\)图像
    • 定义:从上到下每行点数为\(n_1,n_2,n_3,...,n_m\),满足:\(n_1>n_2>n_3>...>n_m\)
    • 共轭图像:将原图像的第\(1\)行和第\(1\)列,第\(2\)行和第\(2\)列。。。第\(k\)行和第\(k\)列互换。
    • 性质\(1:\)正整数\(n\)拆分为\(k\)个数和的拆分数和将\(n\)拆分为最大数为\(k\)的拆分数相等。
    • 性质\(2:\)正整数\(n\)拆分为不超过\(k\)个数和的拆分数和将\(n\)拆分为最大数不超过为\(k\)的拆分数相等。
  • 棋盘多项式(棋盘放棋子,满足每行每列仅有一个棋子):

    • \(C\)表示一种棋盘,\(r_k(c)\)表示在棋盘\(C\)上放\(k\)个棋子的个数,则棋盘多项式为:
      \[ R(C)=\sum^n_{k=0}r_k(C)x^k \]

    • 棋盘多项式的系数为方案数(看定义)

    • 性质:\(R(c)=xR(C_{(i)})+R(C_{(e)})\)\(C_{(i)}\)表示将\(C\)上的指定格子的行列删去,\(C_{(e)}\)表示将指定格子删去

    • \(C_1,C_2\)相互隔离(\(C_1\)中每个格子都与\(C_2\)的格子同行同列),有:\(R(C)=R(C_1)R(C_2)\)

    • 有禁区的排列:\(n!-r_1(n-1)!+r_2(n-2)!-...\pm r_n\),其中\(r_i\)是有\(r_i\)个格子放在禁区的方案数。

转载于:https://www.cnblogs.com/wo-shi-zhen-de-cai/p/11426040.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值