• 卡特兰数和斯特林数(转载)


    卡特兰数,第一类斯特林数,第二类斯特林数
    Catalan数 C(n),第一类Stirling数 s(p,k),第二类Stirling数 S(p,k)

    [卡特兰数,第一类斯特林数,第二类斯特林数]

    一.Catalan数 C(n)

      C(n) 的一个形象的例子是:2*n个括号,其中有n个前括号'('和n个后括号')',排成一列,满足所有括号都匹配的排列数。另一个例子是,n个1和n个-1,共2*n个数,排成一列,满足对所有0<=k<=2*n的前k个数的部分和Sk>=0的排列数。
      C(n)的递推公式是 C(n) = ∑(i = 0 : n-1) { C(n-1-i)*C(i) }
      C(n)的通项公式是 C(n) = ( 1/(n+1) ) * ((2n, n))   ,(( ))表示组合数
      初始值 C(0) = 1

    二.卡特兰数的扩展

      问题1的描述:有n个1和m个-1(n>=m),共n+m个数排成一列,满足对所有0<=k<=n+m的前k个数的部分和Sk > 0的排列数。 问题等价为在一个格点阵列中,从(0,0)点走到(n,m)点且不经过对角线x==y的方法数(x > y)。
      考虑情况I:第一步走到(0,1),这样从(0,1)走到(n,m)无论如何也要经过x==y的点,这样的方法数为(( n+m-1,m-1 ));
      考虑情况II:第一步走到(1,0),又有两种可能:
        a . 不经过x==y的点;(所要求的情况)
        b . 经过x==y的点,我们构造情况II.b和情况I的一一映射,说明II.b和I的方法数是一样的。设第一次经过x==y的点是(x1,y1),将(0,0)到(x1,y1)的路径沿对角线翻折,于是唯一对应情况I的一种路径;对于情况I的一条路径,假设其与对角线的第一个焦点是(x2,y2),将(0,0)和(x2,y2)之间的路径沿对角线翻折,唯一对应情况II.b的一条路径。
      问题的解就是总的路径数 ((n+m, m)) - 情况I的路径数 - 情况II.b的路径数。
        ((n+m , m)) - 2*((n+m-1, m-1))
      或:  ((n+m-1 , m)) - ((n+m-1 , m-1))
      问题2的描述:有n个1和m个-1(n>=m),共n+m个数排成一列,满足对所有0<=k<=n+m的前k个数的部分和Sk >= 0的排列数。(和问题1不同之处在于此处部分和可以为0,这也是更常见的情况) 问题等价为在一个格点阵列中,从(0,0)点走到(n,m)点且不穿过对角线x==y的方法数(可以走到x==y的点)。 
    把(n,m)点变换到(n+1,m)点,问题变成了问题1。
      方法数为:
        ((n+m+1, m)) - 2*((n+m+1-1, m-1))
      或: ((n+m+1-1, m)) - ((n+m+1-1, m-1))


    三.第一类Stirling数 s(p,k)
      s(p,k)的一个的组合学解释是:将p个物体排成k个非空循环排列的方法数。
      s(p,k)的递推公式:
        s(p,k) = (p-1)*s(p-1,k) + s(p-1,k-1)  ,1<=k<=p-1
      边界条件:
        s(p,0) = 0  ,p>=1
           s(p,p) = 1  ,p>=0

      递推关系的说明:考虑第p个物品,p可以单独构成一个非空循环排列,这样前p-1种物品构成k-1个非空循环排列,方法数为s(p-1,k-1);也可以前p-1种物品构成k个非空循环排列,而第p个物品插入第i个物品的左边,这有(p-1)*s(p-1,k)种方法。


    四.第二类Stirling数 S(p,k)

      S(p,k)的一个组合学解释是:将p个物体划分成k个非空的不可辨别的(可以理解为盒子没有编号)集合的方法数。
      S(p,k)的递推公式是:
        S(p,k) = k*S(p-1,k)  + S(p-1,k-1)     ,1<= k <=p-1
      边界条件:
        S(p,p) = 1 ,p>=0
        S(p,0) = 0 ,p>=1

      递推关系的说明:考虑第p个物品,p可以单独构成一个非空集合,此时前p-1个物品构成k-1个非空的不可辨别的集合,方法数为S(p-1,k-1);也可以前p-1种物品构成k个非空的不可辨别的集合,第p个物品放入任意一个中,这样有k*S(p-1,k)种方法。

      第一类斯特林数和第二类斯特林数有相同的初始条件,但递推关系不同。引用Brualdi《组合数学》里的一段注释“对于熟悉线性代数的读者,解释如下:具有(比如)实系数,最多为p次的那些各项式形成一个p+1维的向量空间。组1,n,n^2,...。n^p和组A(n, 0),A(n,1),A(n,2),... ,A(n,p)都是该空间的基。第一类Stirling数和第二类Stirling数告诉我们如何用其中的一组基表示另一组基。”

  • 相关阅读:
    BZOJ2821 作诗(Poetize) 【分块】
    BZOJ2724 蒲公英 【分块】
    Codeforces 17E Palisection 【Manacher】
    BZOJ2565 最长双回文串 【Manacher】
    Codeforces 25E Test 【Hash】
    CODEVS3013 单词背诵 【Hash】【MAP】
    HDU2825 Wireless Password 【AC自动机】【状压DP】
    HDU2896 病毒侵袭 【AC自动机】
    HDU3065 病毒侵袭持续中【AC自动机】
    HDU2222 Keywords Search 【AC自动机】
  • 原文地址:https://www.cnblogs.com/chenhuan001/p/3196344.html
Copyright © 2020-2023  润新知