首页 > 其他 > 详细

贝尔数学习笔记

时间:2020-03-11 16:53:04      阅读:43      评论:0      收藏:0      [点我收藏+]

我们定义贝尔数\(Bn\)为:\(n\)个元素划分为任意个集合的方案数。

根据定义可以知道\(B_n=\sum_{i=0}^n\begin{Bmatrix}n\\i\end{Bmatrix}\)。根据这个式子计算单个贝尔数是\(O(nlogn)\)

贝尔数还可以通过递推式计算。假设前\(n\)个元素已经任意划分,现在加入第\(n+1\)个元素;枚举新元素与前面i个元素分为一个集合,剩下的\(n-i\)个元素任意划分,就有:
\[ B_{n+1}=\sum_{i=0}^n{n\choose i}B_{n-i}=\sum_{i=0}^n{n\choose i}B_i \]

这样可以\(O(n^2)\)计算前\(n\)个贝尔数的值。

贝尔数还可以写出生成函数。设\(f_n\)为n个元素划分为一个集合的方案数,显然\(f_n=1\)。写出\(f_n\)的指数型生成函数\(F(x)\)就是:
\[ F(x)=\sum_{n=1}\frac{x^n}{n!}=e^x-1 \]

那么\(n\)个数划分为i个集合的方案数就是:
\[ [x^n]F^i(x) \]

枚举划分为多少个集合,那么贝尔数\(B\)的指数型生成函数\(B(x)\)就可以写成:
\[ B(x)=\sum_{n=0}\frac{F^n(x)}{n!}x^n=e^{F(x)}=e^{e^x-1} \]

使用多项式exp,就可以\(O(nlogn)\)计算前\(n\)项贝尔数的值。

我还在知乎写过贝尔数的一些性质:贝尔数满足Touchard同余

贝尔数学习笔记

原文:https://www.cnblogs.com/akura/p/12463127.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!