在组合数学,Stirling数可指两类数,都是由18世纪数学家James Stirling提出的。
Stirling数有两种,第一类和第二类Stirling数,它们自18世纪以来一直吸引许多数学家的兴趣,如欧拉、柯西、西尔沃斯特和凯莱等。后来哥本哈根(Copenhagen)大学的尼尔森(Niels Nielsen,1865-1931)提出了"Stirlingschen Zahlen erster Art" [第一类Stirling数]和"Stirlingschen Zahlen zweiter Art" [第二类Stirling数],首次把这两类数冠以「Stirling数」之名 。因为苏格兰数学家斯特林(J. Stirling, 1692-1770)首次发现这些数并说明了它们的重要性。
斯特林在解决降阶乘积x(n)=x (x–1)( x–2)…(x–n+1)问题时发现了这些数,他在一篇文章 中列出了下面的式子:
x2 = x(x-1) + x
x3 = x(x-1)(x-2) +3x(x-1) + x
x4 = x(x-1)(x-2)(x-3) + 6x(x-1)(x-2) + 7x(x-1) + x
… … … …
上式中各多项式的系数即是第二类Stirling数,它可以用一个三角数阵的形式表示(表4.2)。第二类Stirling数在组合分析与有限差分中有重要的应用。
第二类Stirling数与幂和问题有着密切的联系,其另一种形式出现在关于幂和问题的研究中。这是因为如果把(ex-1)n展开为x的幂级数形式,第二类Stirling数将作为x幂的系数的因子出现。Philadephia的《级数运算导引》(Introduction to Operation with Series,1924)中给出了该数在幂和问题中出现的例子 (该书的第88页)。
中国传统数学中的垛积招差术是研究一些计数函数的有效方法。李善兰《垛积比类》卷一、二中的「三角垛有积求高开方廉隅表」和「乘方垛各廉表」列出了两组系数(如表4.3)。李善兰的「造表法」相当于给出了第一类Stirling数和Euler数递归定义。
第一类Stirling数是有正负的,其绝对值是包含n个元素的集合分作k个环排列的方法数目。
递推公式为,
S(n,0) = 0, S(1,1) = 1.
S(n+1,k) = S(n,k-1) + nS(n,k)。
边界条件:
S(0 , 0) = 1
S(p , 0) = 0 p>=1
S(p , p) =1 p>=0
一些性质:
S(p ,1) = 1 p>=1
S(p, 2) = 2^(p-1)– 1 p>=2
第二类Stirling数是把包含n个元素的集合划分为正好k个非空子集的方法的数目。
递推公式为:
S(n,k)=0; (n<k||k=0)
S(n,n) = S(n,1) = 1,
S(n,k) = S(n-1,k-1) + kS(n-1,k).
将n个有区别的球的球放入k个无标号的盒子中( n>=k>=1,且盒子不允许为空)的方案数就是stirling数.(即含 n 个元素的集合划分为 k 个集合的情况数)
递推公式:
S(n,0) = 0
S(n,1) = 1 (k = 1)
S(n,n) = 1
S(n,k) = 0 (k > n)
S(n,k) = S(n-1,k-1)+k*S(n-1,k) (n >= k >= 2)
分析:设有n个不同的球,分别用b1,b2,...,bn表示。从中取出一个球bn,bn的放法有以下两种:
1.bn独占一个盒子,那么剩下的球只能放在k-1个盒子里,方案数为S(n-1,k-1);
2.bn与别的球共占一个盒子,那么可以将b1,b2,...,bn-1这n-1个球放入k个盒子里,然后将bn放入其中一个盒子中,方案数为k*S(n-1,k).