一、基本概念

斯特林数出现在许多组合枚举问题中.

第一类斯特林数 StirlingS1[n,m], 给出恰包含 m 个圈的 n 个元素 的排列数目. 斯特林数满足母函数关系 . 注意某些 的定义与 Mathematica 中的不同,差别在于因子 .

第二类斯特林数 StirlingS2[n,m]给出把 n 个可区分小球分配到m个不可区分的的盒子,且盒子没有空盒子的方法的数量. 它们满足关系 . 划分函数 PartitionsP[n]给出把整数 n 写为正整数的和,不考虑顺序的方法的数目. PartitionsQ[n]给出把整数 n 写为正整数的和,并且和中的整数是互不相同的 写法的数目

设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数告诉我们如何用其中的一组基表示另一组基。”

二、解释

第一类Siteling_Number

第一类Stirling数是有正负的,其绝对值是个元素的项目分作个环排列的方法数目。常用的表示方法有

换个较生活化的说法,就是有个人分成组,每组内再按特定顺序围圈的分组方法的数目。例如

  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}

这可以用有向图来表示。

给定,有递归关系

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

是调和数的推广。

是递降阶乘多项式的系数:

性质

第二类Siteling_Number

第二类Stirling数是个元素的集定义k个等价类的方法数目。常用的表示方法有

换个较生活化的说法,就是有个人分成组的分组方法的数目。例如有甲、乙、丙、丁四人,若所有人分成1组,只有所有人在同一组这个方法,因此;若所有人分成4组,只可以人人独立一组,因此;若分成2组,可以是甲乙一组、丙丁一组,或甲丙一组、乙丁一组,或甲丁一组、乙丙一组,或其中三人同一组另一人独立一组,即是:

  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}

因此

给定,有递归关系

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

是二项式系数,B_n是贝尔数。

两者关系

是克罗内克尔δ。

三、例题

http://acm.hdu.edu.cn/showproblem.php?pid=3625

https://www.luogu.org/problemnew/show/P3904

四、参考文章

https://www.cnblogs.com/owenyu/p/6724661.html

斯特林数(Siteling_Number)相关推荐

  1. 快速求斯特林数总结(洛谷模板题解)

    题目链接 第一类斯特林数·行 第一类斯特林数·列 第二类斯特林数·行 第二类斯特林数·列 求一行第一类斯特林数 由第一类斯特林数的推论,\(x^{\overline{n}}=\sum_i\begin{ ...

  2. 【2019雅礼集训】【CF 960G】【第一类斯特林数】【NTT多项式】permutation

    目录 题意 输入格式 输出格式 思路 代码 题意 找有多少个长度为n的排列,使得从左往右数,有a个元素比之前的所有数字都大,从右往左数,有b个元素比之后的所有数字都大. n<=2*10^5,a, ...

  3. BZOJ 2159 「国家集训队」Crash 的文明世界(第二类斯特林数,换根DP)【BZOJ计划】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/2159 是 hydro 的 BZOJ ...

  4. 洛谷P4609 [FJOI2016]建筑师 【第一类斯特林数】

    题目链接 洛谷P4609 题解 感性理解一下: 一神带\(n\)坑 所以我们只需将除了\(n\)外的\(n - 1\)个元素分成\(A + B - 2\)个集合,每个集合选出最大的在一端,剩余进行排列 ...

  5. 【BZOJ 4555】[Tjoi2016Heoi2016]求和 多项式求逆/NTT+第二类斯特林数

    出处0.0 用到第二类斯特林数的性质,做法好像很多,我打的是直接ntt,由第二类斯特林数的容斥公式可以推出,我们可以对于每一个i,来一次ntt求出他与所有j组成的第二类斯特林数的值,这个时候我们是O( ...

  6. 【组合数学】第一类,第二类斯特林数(Stirling),Bell数

    第一类斯特林数 定理: 第一类斯特林数S1(p,k)计数的是把p个对象排成k个非空循环排列的方法数. 证明:把上述定理叙述中的循环排列叫做圆圈 递推公式: S1(p,p)=1(p>=0),有p个 ...

  7. BZOJ.4555.[HEOI2016TJOI2016]求和(NTT 斯特林数)

    题目链接 \(Description\) 求\[\sum_{i=0}^n\sum_{j=0}^iS(i,j)\times 2^j\times j!\mod 998244353\] 其中\(S(i,j) ...

  8. 新疆大学(新大)OJ xju 1006: 比赛排名 第二类斯特林数+阶乘

    题目链接:http://acm.xju.edu.cn/JudgeOnline/problem.php?id=1006 第二类斯特林数: 第二类Stirling数实际上是集合的一个拆分,表示将n个不同的 ...

  9. 错排、卡特兰数、斯特林数小结

    一. 错排 1.计算公式: 1) D[n] = (n-1)*(D[n-1]+D[n-2]) ,n>=2, D[0] = 1, D[1] = 0 . 解释:对于第n个要加入错排的数,它可以和已经错 ...

最新文章

  1. Overleaf-LaTex表格制作
  2. BoneCP学习笔记
  3. react-router中的exact和strict
  4. linux安装软件的几种方式(kali平台)和一些实用的软件(持续更新)
  5. 个人遇到局域网不能访问解决分享
  6. 【c++算法刷题笔记】——洛谷1
  7. C# 连接Oracle数据库以及一些简单的操作
  8. Redmi 卢伟冰:要做就做真旗舰 绝不通过简配压低成本
  9. 字符大小端aix linux,Go交叉编译的那些事
  10. SAP License:雾里看花系列——弃用SAP是小企业无奈的选择
  11. 利用Java语言制作关机小程序
  12. ECMAScript6(1):块级作用域
  13. 格式化信息窗口内容—ArcGIS API for JavaScript
  14. grasshop 犀牛5.0下载_神契幻奇谭 v1.129版发布 快来下载神契幻奇谭2020最新官方版...
  15. linux下oracle安装教程
  16. 晶科鑫 | 国产26MHz晶振匹配Espressif(乐鑫) ESP8285/ESP8266芯片案例
  17. uniapp中使用moment.js日期插件
  18. 【Python】简体繁体转换
  19. 2020最新版前端学习路线图--Javascript网页编程重点知识
  20. 微信开挂怎么防止封号_再也不怕被封号!微信养号秘笈教你防封号防降权

热门文章

  1. Hadoop----Hive
  2. 女性创业者的自述:创业这一年学到的10大心得
  3. C# Winform点餐系统(源码+SQL Server 2008 R2)
  4. 菜鸟程序员有哪些明显的特点,他们与高手程序员的区别在哪?
  5. 犀利开发 jQuery内核详解与实践pdf
  6. 如何降低期货交易成本有什么办法(期货投资如何降低风险)
  7. SAP MRP例外信息解释
  8. 5/21 周六_习惯累积沉淀_新浪博客
  9. MVP社区巡讲照片集
  10. Selenium+Python如何定位鼠标悬停的元素