zoukankan      html  css  js  c++  java
  • 组合数学知识要点

    导数与积分

    %%YCB%%

    排列与组合

    加法法则与乘法法则

    基础思想:分类计数使用加法,分步计数使用乘法

    Cayley定理

    (n)个有标号顶点的树的个数为(n^{n-2})

    证明:定义一个消去序列,序列与树一一对应(略)。

    排列与组合

    (n)(r)排列:(frac{n!}{(n-r)!})

    (n)(r)组合:组合数(naive)

    (n)(r)可重排列:(n^r)(naive)

    (n)(r)可重组合:(inom{n+r-1}{r})

    多重集(S={(a_1,k_1),(a_2,k_2),...,(a_n,k_n)})

    多重集的全排列:(frac{n!}{k_1!k_2!...k_n!})

    多重集的(r)组合:(inom{n+r-1}{r}(forall kge r))

    隔板法、放缩法是解释组合意义的利器

    组合问题与二项式系数、格路问题的联系

    不经过对角线的格路问题方案数求解

    Wallis公式与Stirling公式

    Stirling公式:(n!acksim sqrt{2npi}(frac n e)^n)

    貌似OI不怎么用得上?

    递推关系与母函数

    母函数

    对一个数列(a_0,a_1,a_2...)构造函数

    [G(x)=a_0+a_1x+a_2x^2+... ]

    称为母函数,其长度可以是无穷大。

    母函数的表示及求解

    大部分无穷大的母函数可以写成若干个无穷等比数列的和

    无穷等比数列求和公式:(S=frac{a_1}{1-q})(不失一般性地设(0<q<1),由有穷等比数列求和(S_n=frac{a_1(1-q^n)}{1-q})(q^n)看作无穷小可以推导出)

    求解的一般步骤

    一、写出递推式(形如(a_i=f(a_{i-1})),记为递推式的第(i)项)

    二、递推式的第(i)项两边乘上(x^i),最后所有等式左右两边分别求和,形如

    [a_1x+a_2x^2+a_3x^3+...=f(a_0)x+f(a_1)x^2+f(a_2)x^3+... ]

    三、通过移项、无穷等比数列求和、因式分解等变换,把上面的大等式大概写成这样(分子是任意一个多项式(P(x)),不用在意)

    [G(x)=frac{P(x)}{(1-q_1x)(1-q_2x)...} ]

    四、上式可以裂项成若干等比数列的和

    [G(x)=frac{A_1}{(1-q_1x)}+frac{A_2}{(1-q_2x)}+... ]

    待定系数法,将上式通分以后,根据合并后的分子与上面的(P(x))对应项的系数相等,联立方程组解出(A_1,A_2,...)

    母函数的应用

    写出数列的母函数后,我们可以写出数列的通项公式,进而快速求出数列指定项(a_n)的值。

    既然我们可以把大部分母函数写成等比数列和的形式,那么我们就对于每一个等比数列,算出它的(x^n)的系数,最后相加即可得到(a_n)

    优选法

    就是三分求单峰函数的极值,只不过在区间的(0.382)(0.618)等分点求值,这样有一个值在下一次的时候还能用上。

    利用Fibonacci数列后一项比上前一项接近(0.618)的性质,可以使优选法取到整点。

    线性常系数齐次递推关系

    对于数列({a_n})有递推式

    (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}))

    (forall c,d)都是常数,则称上式为(k)阶线性常系数齐次递推关系

    (C(x)=x^k+c_1x^{k-1}+c_2x^{k-2}+...+c_{k-1}x+c_k)称为特征多项式。

    求解

    经过复杂的变换,数列的母函数一定可以写成

    [G(x)=frac{P(x)}{1+c_1x+c_2x^2+...+c_kx^k} ]

    其中(P(x))为一个极其复杂的最高次项不超过(k-1)的多项式。

    分母显然等价于(x^kC(frac 1 x)),于是考虑解方程

    [C(x)=(x-α_1)^{k_1}(x-α_2)^{k_2}...(x-α_t)^{k_t} ]

    (α_1,α_2,...α_t)(C(x))在复数域内的(t)个根,称为特征根。显然可能有重根,(k_i)即为(α_i)的重复次数,于是有(sumlimits_{i=1}^t k_i=k)

    于是将(k)(x)乘进分母中得出

    [G(x)=frac{P(x)}{(1-α_1x)^{k_1}(1-α_2x)^{k_2}...(1-α_tx)^{k_t}} ]

    开始求(x^n)系数(a_n)三种情况只好死记硬背

    单根

    设有若干单根(α_1,α_2,...α_k)

    直接待定系数(A_1α_1^n+A_2α_2^n+...+A_kα_k^n)

    复根

    如果出现复根,肯定是一对一对的共轭复根(ρ(cosθpm isinθ))

    待定系数(Aρ^ncos nθ+Bρ^nsin nθ)

    多重根

    有一个(k)重根(α)

    待定系数((A_0+A_1n+A_2n^2+...+A_{k-1}n^{k-1})α^n)

    貌似也适用于单根((k=1))


    三种情况的待定系数式相加即为(a_n)的表达式

    将初始值(a_0=d_0,a_1=d_1,...a_{k-1}=d_{k-1})带入(a_n)的表达式中,得到一个(k)元方程组,求解即可。

    系数都求出来了,(a_n)当然求出来啦!

    整数的拆分

    运用母函数解释

    设有(n)个数的多重集({(d_1,k_1),(d_2,k_2),...(d_n,k_n)}),每个数可以任意选,那么可以构造一母函数

    [G(x)=(1+x^{d_1}+x^{2d_1}+...+x^{k_1d_1})...(1+x^{d_n}+x^{2d_n}+...+x^{k_nd_n}) ]

    展开可得

    [G(x)=1+a_1x+a_2x^2+a_3x^3+...+a_{(sum kd)-1}x^{(sum kd)-1}+x^{sum kd} ]

    其中(x^i)项系数(a_i)为将(i)拆成若干数的和的方案数。

    上面讨论的是可以任意选的情况。根据题目对选择数的限制,可以对母函数进行修改,(x^{Ad_i})不存在即表示数(d_i)不能选(A)个。

    Ferrers图像

    懒得解释图像,百度百科

    利用图像可以得到的重要性质:整数(n)拆分成最多不超过(m)个数的和的拆分数,和(n)拆分成最大不超过(m)的拆分数相等。

    指数型母函数

    对一个数列(a_0,a_1,a_2...)构造函数

    [G_e(x)=a_0+frac{a_1}{1!}x+frac{a_2}{2!}x^2+... ]

    称为指数型母函数。

    这个名字是怎么来的呢?

    (e^x)的麦克劳林级数(1+x+frac{x^2}{2!}+frac{x^3}{3!}+...),跟指数型母函数的定义式很像

    反过来说,序列({1,1,1,...})的指数型母函数显然为(e^x)

    如果需要进行组合意义的计数,常使用指数型母函数。

    常用变换

    [e^{kx}Leftrightarrow1+kx+frac{k^2}{2!}x^2+frac{k^3}{3!}x^3+... ]

    [e^{-x}Leftrightarrow1-x+frac{k^2}{2!}x^2-frac{k^3}{3!}x^3+... ]

    [frac{e^x+e^{-x}}2Leftrightarrow1+frac{k^2}{2!}x^2+frac{k^4}{4!}x^4+frac{k^6}{6!}x^6... ]

    第一类Stirling数

    %%litble%%

    定义为(n)个有区别的球划分成(m)个环的方案数。用(s(n,m))表示。

    [s(n,m)=(n-1)s(n-1,m)+s(n-1,m-1) ]

    [s(n,m)=[x^m](prodlimits_{i=0}^{n-1}(i+x)) ]

    第二类Stirling数

    %%GZY%%

    定义为(n)个有区别的球放进(m)个相同的盒子中,盒子不允许为空。另一种通俗的称呼是集合划分数。用(S(n,m))表示。

    [S(n,m)=mS(n-1,m)+S(n-1,m-1) ]

    [S(n,m)=frac{1}{m!}sumlimits_{k=0}^{m-1}(-1)^kinom{m}{k}(m-k)^n ]

    Catalan数

    定义为通过(n-2)条对角线把一个凸(n)边形分割的方案数。

    [C_{n+1}=frac 1 ninom{2n-2}{n-1} ]

    [C_n=frac{(2n)!}{n!(n+1)!} ]

    容斥原理与鸽巢原理

    德摩根定理

    符号约定:记(overline A)(A)的补集,(|A|)(A)的元素个数。

    (overline{Acup B}=overline Acapoverline B,overline{Acap B}=overline Acupoverline B)(naive)

    容斥原理

    先来直观的

    (|Acup B|=|A|+|B|-|Acap B|)

    (|Acup Bcup C|=|A|+|B|+|C|-|Acap B|-|Acap C|-|Bcap C|+|Acap Bcap C|)

    推广到求(|A_1cup A_2cup ...cup A_n|)(|igcuplimits_{i=1}^nA_i|)

    设一个集合的集合(S={A_1,A_2,...,A_n})

    那么枚举(S)的子集求并,如果这个子集大小为奇,那么容斥系数为(1),否则为(-1),总的式子长这样

    [|igcuplimits_{i=1}^nA_i|=sumlimits_{i=1}^{n}|A_i|-sumlimits_{i eq j}|A_icap A_j|+sumlimits_{i eq j eq k,i eq k}|A_icap A_jcap A_k|-... ]

    类似地,还可以反过来求(|overline{A_1}cap overline{A_2}cap ...capoverline{ A_n}|)(|igcaplimits_{i=1}^noverline{A_i}|)

    [|igcaplimits_{i=1}^noverline{A_i}|=|S|-sumlimits_{i=1}^{n}|overline{A_i}|+sumlimits_{i eq j}|overline{A_i}cupoverline{A_j}|-sumlimits_{i eq j eq k,i eq k}|overline{A_i}cupoverline{A_j}cupoverline{A_k}|+... ]

    莫比乌斯反演

    定义一个容斥系数(mu(d))

    [mu(d)=egin{cases}quad1quad,d=1\(-1)^k,d=p_1p_2...p_k(p是互不相同的质数)\quad0quad,otherwiseend{cases} ]

    (f(n),g(n))是定义在正整数上的个函数,满足

    [f(n)=sumlimits_{d|n}g(d) ]

    [g(n)=sumlimits_{d|n}mu(d)f(frac n d) ]

    鸽巢原理/抽屉原理

    (n)个抽屉里有(n+1)个苹果,则至少有一个抽屉里有两个苹果(naive)

    群论

    跳过群的基本概念吧,反正计数又用不着。

    置换群

    所有的有限群都可以用置换群表示。

    置换的定义:一个(n)元置换是一个排列二元组,一般写成

    [p=egin{pmatrix}1&2&3&...&n\a_1&a_2&a_3&...&a_nend{pmatrix} ]

    表示把序列中的(i)号元素替换为(a_i)号元素。

    第一行不一定要写成(1-n),将列任意交换得到的仍是原来的置换。

    Burnside引理

    (L=frac{1}{|G|}sumlimits_{pin G}不动点个数(p))

    Pólya定理

    定义(k)阶循环为一个序列((b_1,b_2,...b_k)),满足在置换中(a_{b_1}=b_2,a_{b_2}=b_3,...a_{b_k}=a_1)

    于是一个置换可以写成若干个循环的组合,比如

    [p=egin{pmatrix}1&2&3&4&5\2&4&5&1&3end{pmatrix} ]

    可以写成两个循环((1,2,4)(3,5))的形式。

    如果((b_1,b_2,...b_{k-1},b_k))((b_2,b_3,...b_k,b_1))视为等价的话,那么可以说每一个置换都有唯一的一个循环表示。

    (c_p)为置换(p)循环表示下循环的总数。在置换群(G)的意义下用(m)种颜色染物品,其方案数为(frac{1}{|G|}sumlimits_{pin G}m^{c_p})

  • 相关阅读:
    Junit单元测试
    win7的6个网络命令
    WOJ1024 (POJ1985+POJ2631) Exploration 树/BFS
    WOJ1022 Competition of Programming 贪心 WOJ1023 Division dp
    woj1019 Curriculum Schedule 输入输出 woj1020 Adjacent Difference 排序
    woj1018(HDU4384)KING KONG 循环群
    woj1016 cherry blossom woj1017 Billiard ball 几何
    woj1013 Barcelet 字符串 woj1014 Doraemon's Flashlight 几何
    woj1012 Thingk and Count DP好题
    woj1010 alternate sum 数学 woj1011 Finding Teamates 数学
  • 原文地址:https://www.cnblogs.com/flashhu/p/9568368.html
Copyright © 2011-2022 走看看