第一类斯特林数

定理:

第一类斯特林数S1(p,k)计数的是把p个对象排成k个非空循环排列的方法数。

证明:把上述定理叙述中的循环排列叫做圆圈

递推公式:

S1(p,p)=1(p>=0),有p个人和P个圆圈,每个圆圈就只有一个人

S1(P,0)=0(P>=1)如果至少有1个人,那么任何安排都至少包含一个圆圈

S1(P,K)=(P-1)*S1(P-1,K)+S1(P-1,K-1)

设P个人的编号为1,2,3,4.....P,将P个人排成k个圆圈有两种情况:

1.在一个圆圈里只有编号为P的人,排法有S1(P-1,K-1)个。

2.P至少和另外一个人在一个圆圈里。这些排法可以通过把1,2.....p-1排成k个圆圈,再把p放在1,2........p-1任意一个人的左边,因此,第二种类型的排法有(p-1)*S1(p-1,k)种做法

在证明中,我们所作的就是把{1,2,3,4.......P}划分到K个非空且不可区分的盒子,然后每个盒子中的元素排成一个循环排列

long long s1[maxn][maxn];//存放第一类Stirling数
long long mod=1e9+7;//取模
void init()
{s1[1][1]=1;for(int i=2;i<maxn;i++)for(int j=1;j<maxn;j++)s1[i][j]=(s1[i-1][j-1]+(i-1)*s1[i-1][j])%mod;
}

第二类斯特林数

定理:

第二类Stirling数S2(P,K)计数表示把P元素划分到k个不可区分的盒子里且没有空盒子的划分个数

证明:

S2(P,P)=1(P>=0)

S2(P,0)=0 (p>=1)

递推公式:S2(p,k)=k*S2(p-1,k)+S2(p-1,k-1)  (1<=k<=p-1)

把{1,2,3,4......p}分到k个非空且不可区分的盒子里的划分有两种情况:

1.P单独在一个集合,存在S2(p-1,k-1)种划分个数

2.p不单独在一个盒子的划分,p和其他元素在一个集合,也就是在没有放P之前,有p-1个元素已经分到了K个非空且不可区分的盒子里,现在把P放进去,有K种选择,存在K*S2(p-1,k)种划分

long long s2[maxn][maxn];//存放第二类Stirling数
long long mod=1e9+7;//取模
void init()
{s2[1][1]=1;for(int i=2;i<maxn;i++)for(int j=1;j<maxn;j++)s2[i][j]=(s2[i-1][j-1]+j*s2[i-1][j])%mod;
}

扩展:K!* S(P,K)计数就是把P元素集合划分到K个可区分的盒子里,且没有空盒子的划分个数

Bell数

定理:B(P)是将P元素集合分到非空,且不可区分盒子的划分个数(没有要求分到几个盒子里)

B(p)=S2(P,0)+S2(P,1)+S2(P,2)+S2(P,3)+S2(P,4)+........S2(P,n);

即先求出第二类斯特林数,然后求和即可

【组合数学】第一类,第二类斯特林数(Stirling),Bell数相关推荐

  1. 【组合数学】第二类斯特林数

    一.定义 第二类Stirling数即:,又可记为[与第一类的表示有大小写的区别].其表示将n个不同的元素分成m个集合的方案数. 二.理解关键词句 1.集合的一个拆分(表示将n个不同的元素拆分成m个集合 ...

  2. [学习笔记]第一类/第二类斯特林数

    前置知识 · 组合数学基础 · 容斥原理 · 生成函数 · FFT/NTT · 多项式exp,多项式ln,多项式快速幂,多项式平移 一些规定 · 下降幂 xn‾=∏i=1n(x−i+1)x^{\und ...

  3. 第一类第二类斯特林数总结

    第一类Stirling数是有正负的,其绝对值是包含n个元素的集合分作k个环排列的方法数目. 递推公式为, S(n,0) = 0, S(1,1) = 1. S(n+1,k) = S(n,k-1) + n ...

  4. java第二类斯特林数编程代码,Luogu1655 小朋友的球 (组合数学,第二类斯特林数,高精)...

    我bingoyes再高精用STL就饿死,死外边! string真的爽... 斯特林数模板题:\(S(n,m) = S(n-1,m-1)+S(n-1,m)*n\) #include #include # ...

  5. 第二类Stirling数(第二类斯特林数)

    第二类Stirling数(第二类斯特林数) 定义 第二类Stirling数表示把nnn个不同的数划分为mmm个集合的方案数,要求不能为空集,写作S(n,m)S(n,m)S(n,m). 和第一类Stir ...

  6. 第一类斯特林数 / 第二类斯特林数 / 贝尔数 小结

    第一类斯特林数 有 nnn 个不同的小球,将它们串成 mmm 条项链,有多少种不同的方案? 第一类斯特林数的表示方法为 [nm]\left[\begin{matrix}n\\m\end{matrix} ...

  7. 第一类和第二类斯特林数

    第一类斯特林数 第一类斯特林数定义如下: \(s_1(n,k)\)表示\(n\)个元素组成\(k\)个圆排列的方案数. 其中\(n\)个元素的圆排列定义为\(n\)个元素围成一圈的排列,两个圆排列本质 ...

  8. 组合基础2 第一类斯特林数 第二类斯特林数 基础部分

    记xn‾=x(x+1)(x+2)⋯(x+n−1)x^{\overline{n}}=x(x+1)(x+2)\cdots(x+n-1)xn=x(x+1)(x+2)⋯(x+n−1),xn‾=x(x−1)(x ...

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

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

最新文章

  1. iTerm的安装以及配置Oh My Zsh
  2. 汽车组装c语言排列组合算法,求一个关于排列组合的算法
  3. 过滤器匹配符包含单词_Hamcrest包含匹配器
  4. Android 在onCreate()方法中获取控件宽高值为0解决方案
  5. from rfc 2068 hypertext怎么解决_“饮水思源”英语怎么翻译
  6. 8.10 NOIP模拟测试16 Blue+Weed+Drink
  7. 50 招教你防止黑客入侵,适用于入门小白到专业人员
  8. 【闲聊产品】之一:半路出家的产品经理
  9. html修改颜色的代码大全,html代码大全(基础使用代码)(颜色代码完整版)
  10. 进入传奇荣耀显示服务器不存在,传奇荣耀————【合区】5月10日合区公告
  11. 虚拟机ESXi6.7安装黑群晖教程
  12. macbook 虚拟机安装win7
  13. 信号处理基础-matlab-wavread-audioread
  14. 清华大学计算机系赵桥,赵桥
  15. Android 无线 ADB 懒人打法:WiFiADB 调试
  16. 简易的监控mysql_使用开源工具mysqlreport监控Mysql数据库-简易使用方法
  17. Scratch软件编程等级考试三级——20191221
  18. SlidingMenu初识
  19. 月薪20k+的Android面试都问些什么?终获offer
  20. 《保护我们的数字遗产:DNA数据存储》白皮书发布

热门文章

  1. fastjson 返回json字符串,JSON.parse 报错
  2. 当singleton Bean依赖propotype Bean,可以使用在配置Bean添加look-method来解决
  3. HTML页面仿iphone数字角标
  4. 如何将Arraylist转成string输出?
  5. 助你打造纯键盘流系统——Launchy
  6. android中内存泄露,Android中的内存泄露
  7. 电脑底部任务栏点不动_「方法」在电脑上使用小程序的方法
  8. editorloop 占用_systemd CPU占用100%,并出现大量僵尸进程
  9. python将大于输出列表_程序检查列表中的所有值是否都大于Python中的给定值
  10. 提取点的dn值_干货在线 | DEM数据如何生成高程点