贝尔数(来自维基百科)& Stirling数
贝尔数
贝尔数以埃里克·坦普尔·贝尔(Eric Temple Bell)为名,是组合数学中的一组整数数列,开首是(OEIS的A000110数列):
Bell Number
Bn是基数为n的集合的划分方法的数目。集合S的一个划分是定义为S的两两不相交的非空子集的族,它们的并是S。例如B3 = 5因为3个元素的集合{a, b, c}有5种不同的划分方法:
- {{a}, {b}, {c}}
- {{a}, {b, c}}
- {{b}, {a, c}}
- {{c}, {a, b}}
- {{a, b, c}};
B0是1因为空集正好有1种划分方法。空集的每个成员都是非空集合(这是Vacuous truth,因为空集实际上没有成员),而它们的并是空集本身。所以空集是它的唯一划分。
贝尔数适合递推公式:
上述组合公式的证明:
可以这样来想,B_{n+1}是含有n+1个元素集合的划分的个数,考虑元素
假设他被单独划分到一类,那么还剩下n个元素,这种情况下划分个数为
;
假设他和某一个元素被划分为一类,那么还剩下n-1个元素,这种情况下划分个数为
;
假设他和某两个元素被划分为一类,那么还剩下n-2个元素,这种情况下划分个数为
;
依次类推,得到了上述组合公式
它们也适合“Dobinski公式”:
它们也适合“Touchard同余”:若p是任意质数,那么
每个贝尔数都是"第二类Stirling数"的和
Stirling数S(n, k)是把基数为n的集划分为正好k个非空集的方法的数目。
把任一概率分布的n次矩以首n个累积量表示的多项式,其系数和正是第n个贝尔数。这种数划分的方法不像用Stirling数那个方法粗糙。
贝尔数的指数母函数是
贝尔三角形[编辑]
用以下方法建构一个三角矩阵(形式类似杨辉三角形):
- 第一行第一项是1(
) - 对于n>1,第n行第一项等同第n-1行最后一项。(
) - 对于m,n>1,第n行第m项等于它左边和左上方的两个数之和。(
)
结果如下:(OEIS:A011971)
每行首项是贝尔数。每行之和是第二类Stirling数。
这个三角形称为贝尔三角形、Aitken阵列或Peirce三角形(Bell triangle, Aitken's array, Peirce triangle)。
参见[编辑]
参考[编辑]
贝尔数(来自维基百科)& Stirling数的更多相关文章
- 自然数幂和——第一类Stirling数和第二类Stirling数
第一类Stirling数 首先设 $$S_k(n)=\sum_{i=0}^ni^k$$ 根据第一类斯特林数的定义(P是排列数,C是组合数,s是Stirling) $$C_n^k={P_n^k\over ...
- arp:地址解析协议(Address Resolution Protocol)(来自维基百科)
地址解析协议(Address Resolution Protocol),其基本功能为通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。它是IPv4中网络层必不可少的协议,不过在I ...
- web框架--来自维基百科
- Bell(hdu4767+矩阵+中国剩余定理+bell数+Stirling数+欧几里德)
Bell Time Limit:3000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status ...
- 第一类和第二类Stirling数
做了老是忘…… 实际问题: 找维基百科.百度百科…… 第一类Stirling数 n个元素构成m个圆排列 S(n,m)=S(n-1,m-1)+(n-1)*S(n-1,m) 初始 S(0,0)=1 S(n ...
- [总结] 第二类Stirling数
上一道例题 我们来介绍第二类Stirling数 定义 第二类Stirling数实际上是集合的一个拆分,表示将n个不同的元素拆分成m个集合的方案数,记为 或者 .和第一类Stirling数不同的是,集合 ...
- Stirling数
第一类: 定义 第一类Stirling数表示表示将 n 个不同元素构成m个圆排列的数目.又根据正负性分为无符号第一类Stirling数 和带符号第一类Stirling数 .有无符号Stir ...
- Bell数和Stirling数
前面说到了Catalan数,现在来了一个Bell数和Stirling数.什么是Bell数,什么是Stirling数呢?两者的关系如何,有用于解决什么算法问题呢? Bell数是以Bell这个人命名的,组 ...
- Stirling数入门
第一类Stirling数 定义 $$\begin{aligned}(x)_n & =x(x-1)...(x-n+1)\\&= s(n, 0) + s(n,1)x +..+s(n,n)x ...
随机推荐
- Nginx unit 源码安装初体验
Nginx unit 源码安装初体验 上次介绍了从yum的安装方法(https://www.cnblogs.com/wang-li/p/9684040.html),这次将介绍源码安装,目前最新版为1. ...
- python:a+=b 和a=a+b? 基础数据类型也不能乱用
python:a+=b 不等于a=a+b? a+=b 调用的是__iadd__方法,但是a+b调用的是__add__方法.对于自定义的对象,我们通过覆盖两个方法来实现+=和+操作,但是基础数据类型呢? ...
- SQL STUFF函数 拼接字符串 多列 合并成一列 转
关于和并列的 要这种效果. create table tb(idint, value varchar(10)) insert into tbvalues(1,'aa') insert into tbv ...
- scala字符串前加s使用$
https://my.oschina.net/u/2000675/blog/1592140 字符串中的变量替换,Scala中基础的字符串插值就是在字符串前加字幕‘s’,然后在字符串中放入变量,每个变量 ...
- Java中的Lock接口
Synchronized & Lock synchronized 是Java语言中的关键字,由monitorenter,monitorexit两个指令实现.JVM会将monitorenter指 ...
- vue 自学笔记(1)
从to do list 开始 一: 安装 1: 导入cdn <script src="https://cdn.bootcss.com/vue/2.6.10/vue.min.js& ...
- Spark基础脚本入门实践2:基础开发
1.最基本的Map用法 val data = Array(1, 2, 3, 4, 5)val distData = sc.parallelize(data)val result = distData. ...
- IDEA内置git功能的使用教程
IDEA内置git功能的使用教程 IDEA git IDEA被公认为是最好的java开发工具,除了在代码助手.代码提示.重构工具等方面有比较好的支持,还在各类版本控制工具(git.tfs.svn.g ...
- 【xsy2332】Randomized Binary Search Tree DP+FFT
题目大意:给你一个$[0,1]$之间等概率随机序列,你需要把这个序列插入到一棵$treap$中,问这棵$treap$的期望深度,请对于$[1,n]$中的每个深度分别输出它的概率(实数,保留五位小数). ...
- web自动化测试---测试中其他一些常用操作
一些其他常用操作如下: 1.最大化浏览器窗口 driver.maximize_window() 2.后退 driver.back() 3.前进 driver.forward() 4.刷新操作 driv ...






