zoukankan      html  css  js  c++  java
  • 斯特林数

    第一类斯特林数

    定义

    (left[egin{matrix}n\mend{matrix} ight]) 表示将(n)个带标号的元素放入(m)个不带标号的环的方案数

    递推式

    [left[egin{matrix}n\mend{matrix} ight]=left[egin{matrix}n-1\m-1end{matrix} ight]+(n-1)left[egin{matrix}n-1\mend{matrix} ight] ]

    组合意义

    考虑最后一个元素:要么重新开一个环,要么加入到已经存在的环当中(即选择一个元素加入到它后面)

    边界条件

    [left[egin{matrix}n\0end{matrix} ight]=[n=0] ]

    还有一个

    [left[egin{matrix}n\mend{matrix} ight]=sum_{i=1}^nleft[egin{matrix}n-i\m-1end{matrix} ight](i-1)!inom{n-1}{i-1} ]

    即考虑(n) 所在的环,枚举其大小(i) ,((i-1)!) 代表环的方案数,(inom{n-1}{i-1}) 代表从(n-1) 个元素中选出(i-1) 个来和(n) 在一起(注意不是考虑最后一个环,因为这里的环是不带标号的)

    性质

    [sum_{i=0}^nleft[egin{matrix}n\iend{matrix} ight]=n! ]

    即考虑一个排列可以拆成若干个循环,每个循环都是一个圆排列。

    第一类斯特林数求行

    第一类斯特林数求列

    考虑对于一个大小为(i) 的环排列有((i-1)!) 中方案,则环排列的(EGF)

    [sum_{i=1}^{+infty}(i-1)!frac {x^i}{i!}=sum_{i=1}^{+infty}frac {x^i}i=-ln(1-x) ]

    (left[egin{matrix}n\iend{matrix} ight]) 含有(i) 个环,那么它的(EGF) 就是(frac{(-ln(1-x))^i}{i!}) ,于是多项式快速幂即可。

    第二类斯特林数

    定义

    (left{egin{matrix}n\mend{matrix} ight}) 表示将(n) 个带标号的元素放入(m) 个不带标号的集合的方案数

    递推式

    [left{egin{matrix}n\mend{matrix} ight}=left{egin{matrix}n-1\m-1end{matrix} ight}+mleft{egin{matrix}n-1\mend{matrix} ight} ]

    组合意义

    考虑最后一个元素:要么自成一个集合,要么放入之前已有的(m) 个集合中

    边界条件

    [left{egin{matrix}n\0end{matrix} ight}=[n=0] ]

    还有一个

    [left{egin{matrix}n\mend{matrix} ight}=sum_{i=1}^nleft{egin{matrix}n-i\m-1end{matrix} ight}inom{n-1}{i-1} ]

    即考虑(n) 所在的集合,枚举其大小(i)(inom{n-1}{i-1}) 代表从(n-1) 个元素中选出(i-1) 个来和(n) 在一起

    通项公式

    [left{egin{matrix}n\mend{matrix} ight}=frac 1{m!}sum_{k=0}^m(-1)^{m-k}inom mk k^n ]

    推导:

    我们首先有

    [m^n=sum_{i=0}^minom mileft{egin{matrix}n\iend{matrix} ight}i! ]

    左边代表将(n) 个带标号元素放入(m) 个带标号集合的方案数,其中可能存在空集

    右边先枚举(i) 代表非空集个数,而后(inom mi) 代表从(m) 个集合中选出(i) 个作为非空集,(left{egin{matrix}n\iend{matrix} ight}) 代表将(n) 个带标号元素放入(i) 个不带标号的集合,(i!) 代表将这(i) 个集合带上标号

    二项式反演可得

    [left{egin{matrix}n\mend{matrix} ight}m!=sum_{i=0}^minom mi(-1)^{m-i}i^n\ left{egin{matrix}n\mend{matrix} ight}=frac 1{m!}sum_{k=0}^m(-1)^{m-k}inom mk k^n ]

    第二类斯特林数求行就直接按照上式卷积即可

    第二类斯特林数求列

    考虑一个集合的(EGF)

    [sum_{i=1}^{+infty}1frac{x^i}{i!}=e^x-1 ]

    那么(left{egin{matrix}n\mend{matrix} ight})(EGF) 就是(frac{(e^x-1)^m}{m!}),快速幂即可。

    次幂,下降幂和上升幂

    [x^n=sum_{i=0}^nleft{egin{matrix}n\iend{matrix} ight}x^{underline i}\ x^{underline n}=sum_{i=0}^n(-1)^{n-i}left[egin{matrix}n\iend{matrix} ight]x^i\ x^{overline n}=sum_{i=0}^nleft[egin{matrix}n\iend{matrix} ight]x^i\ x^n=sum_{i=0}^n(-1)^{n-i}left{egin{matrix}n\iend{matrix} ight}x^{overline i} ]

    恒等式

    [sum_kleft[egin{matrix}n\kend{matrix} ight]left{egin{matrix}k\mend{matrix} ight}(-1)^{n-k}=[n=m]\ sum_kleft{egin{matrix}n\kend{matrix} ight}left[egin{matrix}k\mend{matrix} ight](-1)^{n-k}=[n=m]\ ]

    斯特林反演

    [f(n)=sum_kleft{egin{matrix}n\kend{matrix} ight}g(k)Leftrightarrow g(n)=sum_k(-1)^{n-k}left[egin{matrix}n\kend{matrix} ight]f(k)\ f(n)=sum_kleft[egin{matrix}n\kend{matrix} ight]g(k)Leftrightarrow g(n)=sum_k(-1)^{n-k}left{egin{matrix}n\kend{matrix} ight}f(k)\ ]

    可以和以上恒等式互推

    更多恒等式

    [left[egin{matrix}{n+1}\m+1end{matrix} ight]=sum_{i=m}^nleft[egin{matrix}n\iend{matrix} ight]inom im ]

    将前(n) 个数划分为(i) 个环排列,而后从中选出(m) 个保留,将剩下的(m-k) 个和(n+1) 一起组成一个环排列。(注意这里有一种一一映射的关系)

    [left{egin{matrix}n+1\m+1end{matrix} ight}=sum_{i=m}^ninom nileft{egin{matrix}i\mend{matrix} ight} ]

    考虑(n+1) 所在的集合有(n+1-i) 个元素,剩下的(i) 个元素形成(m) 个集合。

    [left[egin{matrix}{n+1}\m+1end{matrix} ight]=sum_{i=m}^nleft[egin{matrix}i\mend{matrix} ight]n^{underline{n-i}} ]

    证明和上面类似。

    [left{egin{matrix}n+1\m+1end{matrix} ight}=sum_{i=m}^nleft{egin{matrix}i\mend{matrix} ight}(m+1)^{n-i} ]

    将元素按照编号从小到大的顺序依次考虑。枚举(i) 表示(i+1) 这个元素是第一个属于(n+1) 号元素所在的集合,剩下的(n-i) 个数任意选择集合。

    NO PAIN NO GAIN
  • 相关阅读:
    POJ 3041 Asteroids 最小点覆盖 == 二分图的最大匹配
    POJ 3083 Children of the Candy Corn bfs和dfs
    POJ 2049 Finding Nemo bfs 建图很难。。
    POJ 2513 Colored Sticks 字典树、并查集、欧拉通路
    POJ 1013 Counterfeit Dollar 集合上的位运算
    POJ 2965 The Pilots Brothers' refrigerator 位运算枚举
    无聊拿socket写的100以内的加法考试。。。
    POJ 1753 Flip Game
    初学socket,c语言写的简单局域网聊天
    汇编语言 复习 第十一章 标志寄存器
  • 原文地址:https://www.cnblogs.com/zmyzmy/p/14400355.html
Copyright © 2011-2022 走看看