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

    第一类斯特林数

    定义

    (egin{bmatrix}n\mend{bmatrix})

    表示把(n)个数分入(m)个非空环排列的方案数

    假设有三个数(1,2,3),要组成(1)个圆排列,因为是在一个圆上排列,所以(1,2,3)这个排列和(3,1,2)这个排列是一样的

    递推公式

    [egin{bmatrix}n\mend{bmatrix}=egin{bmatrix}n-1\m-1end{bmatrix}+(n-1)cdotegin{bmatrix}n-1\mend{bmatrix} ]

    如何得出?

    考虑最后一个放进去的数有几种放的方法:

    1. 新增一个圆排列
      这样的方案就是(egin{bmatrix}n-1\m-1end{bmatrix}),意思是把前面(n-1)个数放到(m-1)个圆排列里,然后这一个数独成一个圆排列
    2. 插入到(n-1)个数中的一个的后面
      这样的方案是((n-1)cdotegin{bmatrix}n-1\mend{bmatrix})
      总方案数就是两种加起来

    第二类斯特林数

    定义

    (egin{Bmatrix}n\mend{Bmatrix})

    表示把(n)个数分入(m)个非空集合的方案数

    一般如果不特殊强调,集合都是不可以区分的,什么意思呢?

    还是假设我们有三个数(1,2,3),要把他们放到两个集合中,那么({1,2},{3})({3},{1,2})这两种分法是一样的,也就是说集合是没有先后顺序这一说的

    递推公式

    [egin{Bmatrix}n\mend{Bmatrix}=egin{Bmatrix}n-1\m-1end{Bmatrix}+mcdotegin{bmatrix}n-1\mend{bmatrix} ]

    如何得出?

    我们知道,这是要把(n)个数放到(m)个集合中,还是考虑最后一个放进去的数有几种放的方法

    1. 独成一个集合
      这样的方案就是(egin{Bmatrix}n-1\m-1end{Bmatrix}),意思是把前面(n-1)个数放到(m-1)个集合里,然后这一个数独成一个集合
    2. 塞到已存在的集合里
      如果是这样的话,那么前面的(n-1)个数一定已经组成了(m)个集合,而这最后一个数可以往其中任何一个集合里放,所以就是(mcdotegin{Bmatrix}n-1\mend{Bmatrix})

    总的方案数就是加起来

    通项公式

    [egin{Bmatrix}n\mend{Bmatrix}=dfrac{1}{m!}sumlimits_{k=0}^m(-1)^kdbinom{m}{k}(m-k)^n ]

    考虑把集合无标号强行当成有标号来做。
    有标号的方案数(div m!)得出的就是无标号的方案数
    因为在一个合法的方案里,是不会存在空集合的,一个无标号的方案就可以对应(m!)个有标号的方案数
    所以得出有标号的方案数再(div m!)就可以得出无标号的方案数
    因此问题就转化为了如何求(m)个非空有标号的集合的方案数

    考虑容斥来摆脱非空的限制。
    考虑至少有(k)个空集合时的方案数
    (k)个必空集合的方案数为(dbinom{m}{k})
    剩下的(m-k)个集合中要放(n)个数字,每个数字可以有(m-k)种选法,这样的方案是((m-k)^n)

    因此至少有(k)个空集合时的方案数为(dbinom{m}{k}(m-k)^n)
    乘上容斥系数,再除以(m!),就可以得出上面的式子了

    下降幂和上升幂

    下降幂

    定义

    (n^{underline m})表示(n imes(n-1) imes(n-2) imes … imes(n - m + 1)),称作(n)(m)次下降幂

    小结论

    认真思考、仔细观察、发出小夫的声音不难看出

    • (n^{underline m}=n imes(n-1) imes… imes(n-m+1)=dfrac{n!}{(n-m)!}=A_n^m)

    定理

    [n^m=sumlimits_{i=0}^megin{Bmatrix}m\iend{Bmatrix}n^{underline i} ]

    证明

    考虑(n^m)的组合意义:(m)个有标号的球放到(n)个有标号的盒子中的方案数,没有非空限制

    枚举(i),表示有多少个非空的盒子,将(m)个球分配到这(i)个盒子中

    由第二类斯特林数通项公式证明可得,无标号的方案乘以(i!)就变成了有标号的方案数,由此可得

    [n^m=sumlimits_{i=0}^mdbinom{n}{i}egin{Bmatrix}m\iend{Bmatrix}i! ]

    其中(dbinom{n}{i}i!)就是(A_n^i)也就是(n^{underline i})

    所以原式化为

    [n^m=sumlimits_{i=0}^megin{Bmatrix}m\iend{Bmatrix}n^{underline i} ]

    得证。

    性质

    [x^underline n=sumlimits_{i=0}^negin{bmatrix}n\iend{bmatrix}(-1)^{n-i}x^i ]

    证明可以用数学归纳法,不难证,自己证下吧!

    上升幂

    定义

    (n)(m)次上升幂定义为:

    [n^overline m= n imes(n+1) imes… imes(n+m - 1) ]

    定理

    [n^overline m =sumlimits_{i=0}^megin{bmatrix}m\iend{bmatrix}n^i ]

    实现了把上升幂转化为通常幂

    证明

    采用数学归纳法证明

    • (m=1)时显然成立,两边都是(n)

    • (m>1)时,考虑把(n^overline m)的最后一项提出来

      [n^overline m=(n + m -1) imes n^overline{m-1} ]

      根据归纳假设进一步转化

      [egin{aligned}n^overline m=& (n + m - 1) imessumlimits_{i=0}^{m- 1}egin{bmatrix}m-1\iend{bmatrix}n^i\=&n imessumlimits_{i=0}^{m-1}egin{bmatrix}m-1\iend{bmatrix}n^i+(m-1) imessumlimits_{i=0}^{m-1}egin{bmatrix}m-1\iend{bmatrix}n^i\=&sumlimits_{i=0}^{m-1}egin{bmatrix}m-1\iend{bmatrix}n^{i+1}+sumlimits_{i=0}^{m-1}(m-1)egin{bmatrix}m-1\iend{bmatrix}n^i\=&sumlimits_{i=1}^megin{bmatrix}m-1\i-1end{bmatrix}n^i+sumlimits_{i=0}^{m-1}(m-1)egin{bmatrix}m-1\iend{bmatrix}n^iend{aligned} ]

      发现两个表达式中都有(n^i),所以把(n^i)合并同类项试试

      但是又发现两个式子的边界是不同的,不过没关系,化出来发现这新增的两项是没有意义的,无贡献

      [egin{aligned}&sumlimits_{i=1}^megin{bmatrix}m-1\i-1end{bmatrix}n^i+sumlimits_{i=0}^{m-1}(m-1)egin{bmatrix}m-1\iend{bmatrix}n^i\=&sumlimits_{i=0}^mn^ileft(egin{bmatrix}m-1\i-1end{bmatrix}+(m-1)egin{bmatrix}m-1\iend{bmatrix} ight)-egin{bmatrix}m-1\0-1end{bmatrix}n^0+egin{bmatrix}m-1\mend{bmatrix}n^m\=&sumlimits_{i=0}^mn^ileft(egin{bmatrix}m-1\i-1end{bmatrix}+(m-1)egin{bmatrix}m-1\iend{bmatrix} ight)end{aligned} ]

      有没有觉得括号里的式子有些熟悉,没错,就是第一类斯特林数的递推式,所以我们就得到了

      [sumlimits_{i=0}^mn^ileft(egin{bmatrix}m-1\i-1end{bmatrix}+(m-1)egin{bmatrix}m-1\iend{bmatrix} ight)=sumlimits_{i=0}^mn^iegin{bmatrix}m\iend{bmatrix}= sumlimits_{i=0}^megin{bmatrix}m\iend{bmatrix}n^i ]

    综合上面两种情况,得证。

  • 相关阅读:
    mysql对表操作的各种语句
    Map遍历两种方式
    hibernate3
    Spring、mybaits整合
    mybaits注解
    mybaits 框架运用
    mybatis入门
    限制文本框字符数
    Unity3D Mathf函数
    Unity3d 粒子工具注释
  • 原文地址:https://www.cnblogs.com/loceaner/p/13429832.html
Copyright © 2011-2022 走看看