Loading [MathJax]/extensions/TeX/mathchoice.js

组合数学总结

组合数学总结

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}(又称prufer序列),即树可以生成唯一的序列,下面只用证明序列可以生成唯一的树即可,我们观察这样的两个序列

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

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

    • 性质1:度数为d_i的点在序列中会出现d_i-1
    • 性质2:对于给定度数为d_{1\sim n}的一棵无根树共有\frac{(n-2)!}{\prod_{i=1}^n(d_i-1)!}种情况。(d_i-1i(i\in [1,n])的可重全排)
  • 全排列生成算法(生成一个全排列下一个排列,生成一个全排列的编号)

    • 生成下一个排列:对于一个排列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_iP_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{\alphan-\betan}{\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去掉ij列后的行列式。

    • 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个数错排的方案数与除in-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个格子放在禁区的方案数。

posted @   风骨傲天  阅读(706)  评论(2编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示