码迷,mamicode.com
首页 > 其他好文 > 详细

第二类斯特林数

时间:2018-02-21 15:55:07      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:不用   一个   mat   预处理   含义   大于   方案   不同的   不为   

含义

\(n\)个有区别的球放在\(m\)个相同的盒子内,要求盒子不为空的方案数
实际上也就是把数\(n\)拆成\(m\)个正整数和的方案数
记作\(S(n, m)\)

性质

  1. \(S(n, 0)=S(0, n)=0\),其中\(n \in N\)
  2. \(S(n, k)=0\),其中\(k>n>=1\)
  3. \(S(n, n)=S(n, 1)=1\),其中\(n>=1\)

等等......

求法

递推

\[S(n, m) = S(n - 1, m - 1) + S(n - 1, m) * m\],其中\(n>1,m>=1\)
解释:新开一盒子或者在原有盒子中选一个

公式

\[S(n, m)=\frac{1}{m!}\sum_{k=0}^{m}(-1)^kC(m, k)(m-k)^n\]

证明

先考虑\(n\)个不同的球放在\(m\)不同的盒子内没有无空盒限制的方案数
那么显然就是\(m^n\)
考虑容斥原理
总的\(\ -\ \)有大于等于一个空盒的方案\(\ +\ \)有大于等于两个个空盒的方案\(\ -\ \)有大于等于三个空盒的方案......
写出来就是
\[S(n, m)=\sum_{k=0}^{m}(-1)^kC(m, k)(m-k)^n\]
因为我们认为盒子有区别
\(C(m, k)\)就是把那\(k\)个空盒子选出来
其他的随便放

现在求出了\(n\)个不同的球放在\(m\)不同的盒子内有无空盒限制的方案数
然而要求的是盒子无区别的
还要除以一个\(\frac{1}{m!}\)
就得到了那个公式

其他的一些东西

\[S(n, m)=\frac{1}{m!}\sum_{k=0}^{m}(-1)^kC(m, k)(m-k)^n\]
假设\(n\)固定,那么预处理出\(C(m, k)\)就可以直接多项式卷积求出来所有的\(S(n,m)\)

考虑换一种形式
\[S(n, m)=\frac{1}{m!}\sum_{k=0}^{m}(-1)^kC(m, k)(m-k)^n\]
\[=\frac{1}{m!}\sum_{k=0}^{m}(-1)^k\frac{m!}{k!(m-k)!}(m-k)^n\]
\[=\sum_{k=0}^{m}\frac{(-1)^k}{k!}\frac{(m-k)^n}{(m-k)!}\]

这样就可以不用预处理组合数直接\(FFT\)求了

推论

  • 因为\(S(m, m)=1\),所以
    \[m!=\sum_{k=0}^{m}(-1)^kC(m, k)(m-k)^m\]
  • \(m^n\)类似表示,即用第二类斯特林数表示\(n\)个不同的球放在\(m\)不同的盒子内没有无空盒限制的方案数
    这次枚举不是空的的盒子
    \[m^n=\sum_{k=0}^{m}S(n, k)k!C(m, k)\]

最后特别鸣谢yyb大佬的教导

第二类斯特林数

标签:不用   一个   mat   预处理   含义   大于   方案   不同的   不为   

原文地址:https://www.cnblogs.com/cjoieryl/p/8456660.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!