第一类Stirling数

定义

$$
\begin{aligned}
(x)_n & =x(x-1)...(x-n+1)\\
&= s(n, 0) + s(n,1)x +..+s(n,n)x^n\\
\end{aligned}$$

例如,$n=3$ 时,

$(x)3 = x(x-1)(x-2)$

$(x)3 = x^0 + 2x -3x^2 + x^3$

于是 $s(3,0)=0,s(3,1)=2,s(3,2)=-3,s(3,3)=1$

有符号斯特林数和无符号斯特林数有如下关系:

$$s(n, k) = (-1)^{n-k}\begin{bmatrix} n\\ k \end{bmatrix}$$

下文的 $s(n, k)$ 都是指的无符号的了。

理解

$n$ 个人围着 $k$ 个相同圆桌,每个桌子非空的方案数就是 $s(n, k)$。

也就是将 $n$ 个不同元素分成 $k$ 组,每组中的元素再进行圆排列的方法数。

例如,$s(4, 2) = 11$

  1. (A,B)(C,D)
  2. (A,C)(B,D)
  3. (A,D)(B,C)
  4. (A)(B,C,D)
  5. (A)(B,D,C)
  6. (B)(A,C,D)
  7. (B)(A,D,C)
  8. (C)(A,B,D)
  9. (C)(A,D,B)
  10. (D)(A,B,C)
  11. (D)(A,C,B)

易得一个递推式,

人a独占一桌:$s(n-1, k-1)$

人a不独占一桌:先将 $n-1$ 个人安排好,再将a安排到任一人的右边,$(n-1)*s(n-1, k)$

所以,$s(n, k) = s(n-1. k-1) + (n-1)*s(n-1, k)$

第二类Stirling数

定义

与第一类Stirling数类似,可以用下降阶乘幂定义:

$$x^n = \sum_{k=0}^ns(n, k)(x)_k$$

例如,$n=3$ 时

$$x^3 = s(3, 0)(x)_0 + s(3,1)(x)_1 + s(3,2)(x)_2+s(3,3)(x)_3$$

即 $x^3 = s(3, 0) + s(3,1)x + s(3,2)x(x-1)+s(3,3)x(x-1)(x-2)$

开并合并同类项,得

$$x^3 = s(3,0) + [(3,1)-s(3,2)+2s(3,3)]x + [s(3,2)-3s(3,3)]x^2 + s(3,3)x^3$$

对比系数,解得

$s(3,0)=0, s(3,1)=1,s(3,2)=3,s(3,3)=1$

理解

将含有 $n$ 个元素的集合拆分成 $k$ 个非空子集的方法数就是第二类Stirling数。

也就是将 $n$ 个有区别的球放到 $k$ 个盒子里的方案数。

例如,$s(4,2)=7$(自行前前面对比),

  1. (A,B)(C,D)
  2. (A,C)(B,D)
  3. (A,D)(B,C)
  4. (A)(B,C,D)
  5. (B)(A,C,D)
  6. (C)(A,B,D)
  7. (D)(A,B,C)

也与第一类Stirling数有类似的递推式(初始条件都相同):

$$s(n, m) = s(n-1, m-1) + m*s(n-1, m)$$

证:

等价于将 $n$ 个有区别的球放到 $k$ 个盒子里的方案数,

若球a独占一盒,$s(n-1, m-1)$

若球a不独占一盒,先将剩下的 $n-1$ 个放入 $m$ 个盒子中且不允许有空盒,再将球a放入其中一盒,$ms(n-1, m)$.

补充:

参考链接:

1.https://blog.csdn.net/doyouseeman/article/details/50876786

2. https://zh.wikipedia.org/wiki/斯特林数

Stirling数入门的更多相关文章

  1. Bell(hdu4767+矩阵+中国剩余定理+bell数+Stirling数+欧几里德)

    Bell Time Limit:3000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status  ...

  2. lightOJ 1326 Race(第二类Stirling数)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1326 题意:有n匹马赛跑.问有多少种不同的排名结果.可以有多匹马的排名相同. 思路:排 ...

  3. 斯特灵数 (Stirling数)

    @维基百科 在组合数学,Stirling数可指两类数,都是由18世纪数学家James Stirling提出的. 第一类 s(4,2)=11 第一类Stirling数是有正负的,其绝对值是个元素的项目分 ...

  4. hdu 4372 第一类stirling数的应用/。。。好题

    /** 大意: 给定一系列楼房,都在一条水平线上,高度从1到n,从左侧看能看到f个, 从右侧看,能看到b个,问有多少种这样的序列.. 思路: 因为肯定能看到最高的,,那我们先假定最高的楼房位置确定,那 ...

  5. HDU 3625 Examining the Rooms:第一类stirling数

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3625 题意: 有n个房间,每个房间里放着一把钥匙,对应能开1到n号房间的门. 除了1号门,你可以踹开任 ...

  6. HDU 4372 Count the Buildings:第一类Stirling数

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4372 题意: 有n栋高楼横着排成一排,各自的高度为1到n的一个排列. 从左边看可以看到f栋楼,从右边看 ...

  7. 整理一点与排列组合有关的问题[组合数 Stirling数 Catalan数]

    都是数学题 思维最重要,什么什么数都没用,DP直接乱搞(雾.. 参考LH课件,以及资料:http://daybreakcx.is-programmer.com/posts/17315.html 做到有 ...

  8. [总结] 第二类Stirling数

    上一道例题 我们来介绍第二类Stirling数 定义 第二类Stirling数实际上是集合的一个拆分,表示将n个不同的元素拆分成m个集合的方案数,记为 或者 .和第一类Stirling数不同的是,集合 ...

  9. 贝尔数(来自维基百科)& Stirling数

    贝尔数   贝尔数以埃里克·坦普尔·贝尔(Eric Temple Bell)为名,是组合数学中的一组整数数列,开首是(OEIS的A000110数列):   Bell Number Bn是基数为n的集合 ...

随机推荐

  1. [转]matlab GUI 新手入门——最基本的几个概念

    本文摘自iLoveMatlab论坛 1.从最简单的开始 编程的基本思想是:我执行一个操作,程序做出一个反应."一个操作"包括点击鼠标.拖动滑块.填写数据.选择选项等:"做 ...

  2. SQL Server 中关于系统库Tempdb总结

    Tempdb系统数据库是一个全局资源,可供连接到SQL Server实例的所有用户使用. 存储的内容项: 1.用户对象 用户对象由用户显示创建.这些对象可以位于用户会话的作用域中,也可以位于创建对象所 ...

  3. 国内P2P网贷行业再次大清理,仅剩646家

    最近有网贷行业头部网站流出消息,国内网贷行业再次迎来大洗牌 清扫之后网贷的平台数量仅剩646家,数量陡降 根据小编了解.自2007年国外网络借贷平台模式引入中国以来,由于国家一时没有做出相应规定个条例 ...

  4. JMX远程监控JVM

    远程监控JVM状态需要在JVM启动的时候需要加上一段代码开启这个功能.(以下全部以ubuntu-14-04-server.jdk1.8.tomcat7.0环境为基础) 配置的时候分两种情况:1.无需配 ...

  5. PHP实现curl post和get

    CURL这里就不说明了.以下是简单案例 一.POST //初始化 $curl = curl_init(); //设置抓取的url curl_setopt($curl, CURLOPT_URL, 'ht ...

  6. 原生JavaScript遮罩

    /* 适用原生JS */ function showInfo(info) {     var zzInfo = info;     var mask_bg = document.createEleme ...

  7. koa2---koa-bodyparser中间件

    对于POST请求的处理,koa-bodyparser中间件可以把koa2上下文的formData数据解析到ctx.request.body中 安装: npm install --save koa-bo ...

  8. JavaWeb 之 Filter:过滤器

    一.Filter 概述 1.概念 web 中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能. 2.作用 一般用于完成通用的操作.如:登录验证.统一编码处理.敏感字符等功能 ...

  9. android ViewFlipper(翻转视图) 使用

    1.布局文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns ...

  10. 在Spring中使用AspectJ实现AOP

    在Spring中,最常用的AOP框架是AspectJ,使用AspectJ实现AOP有2种方式: 基于XML的声明式AspectJ 基于注解的声明式AspectJ 基于XML的声明式AspectJ 1. ...