一、基本概念

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

第一类斯特林数 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. 【牛腩新闻发布系统】系统发布06
  2. 常用知识总结——信号量
  3. java ognl表达式 与struts2标签_Struts2 OGNL表达式实例详解
  4. 95-846-820-源码-网络-Flink 网络传输优化技术
  5. 在DataGridView中显示合计,并且合计始终在最后一行
  6. stm32数据手册boot_STM32问题集之BOOT0和BOOT1的作用
  7. 【Java习作】KWIC模拟
  8. perl DBI 总结
  9. 什么是订单管理系统OMS
  10. AutoJs学习-微信群发和引流
  11. 使用opencv进行车牌提取及识别
  12. KIB、MiB、GiB
  13. 一个高考落榜生的奋斗历程
  14. 习题3第五题:分析习题2第四题所述的患者监护系统。试用实体联系图描绘本系统的数据对象,画出本系统的顶层IPO图。
  15. python批量生成word_实例5:用Python批量生成word版邀请函
  16. R语言使用lm函数构建简单线性回归模型(建立线性回归模型)、拟合回归直线、可视化散点图并添加简单线性回归直线、添加模型拟合值数据点、添加拟合值点和实际数据点之间的线段表示残差大小、col参数自定义设置
  17. 此nvidia驱动程序与此windows版本不兼容
  18. win7计算机虚拟内存,Win7虚拟内存怎么设置最好?系统高手告诉你如何更好的设置虚拟内存...
  19. 机器学习基础 决策树算法
  20. LVGL 官方UI设计工具 EdgeLine代码移植

热门文章

  1. 基于JavaCS架构的学生成绩管理系统
  2. 链表带环问题及相遇点问题
  3. 第七周作业:任务分解
  4. 笔记十三 :Egret拖拽对象与吸附对象(基于通用MVC框架)
  5. Matlab中legend()函数的用法:实现标注的显示及隐藏
  6. IE落幕,微软IE浏览器永久关闭
  7. 【Android篇】 SDK 目录结构
  8. 第四届“图灵杯”趣味网络邀请赛
  9. 所有浏览器都有mozilla的原因
  10. 一个超火的网站“Omegle”