斯特林數


簡介

斯特林數是組合數學中的一個重要內容,有許多有用的性質。它由十八世紀的蘇格蘭數學家James Stirling首先發現並說明了它們的重要性。
斯特林數主要處理的是把\(N\)個不同的元素分成\(k\)個集合或環的個數問題。現在我們說的斯特林數可以指兩類數,分為第一類斯特林數和第二類斯特林數,其中第一類斯特林數還分成有符號和無符號兩種。

第一類斯特林數

這里僅討論有符號的第一類斯特林數。
第一類斯特林數表示的是將\(n\)個不同元素分成\(k\)個不同的環的方案數。兩個環不相同當且僅當這兩個環不能通過旋轉得到。表示方法為:

\[\begin{bmatrix} n \\ k \end{bmatrix} \]

考慮遞推,把\(n\)個不同元素分成\(k\)個不同的環有兩種轉移。第一種,有可能是\(n-1\)個不同元素分成\(k-1\)個不同的環,當前的第\(n\)個獨立成一個元素。第二種可能是\(n-1\)個不同元素已經分好了\(k\)個不同的環,當前這個可以加進去。加在每個已有元素的逆時針方向(或順時針方向,方向沒有關系,只要統一即可)就不會出現重復,共有\(n-1\)種方法,所以:

\[\begin{aligned} \begin{bmatrix} 0 \\ 0 \end{bmatrix} &=1 \\ \begin{bmatrix} n \\ k \end{bmatrix} &= \begin{bmatrix} n-1 \\ k-1 \end{bmatrix} + \begin{bmatrix} n-1 \\ k \end{bmatrix} *(n-1) \end{aligned} \]

這就是第一類斯特林數的遞推式,也可以寫成:

\[s(n,k)=s(n-1,k-1)+s(n-1,k)*(n-1) \]

性質

組合數學中的定理暴力求解可行,但是不好玩。所以組合數學中很多定理的證明是通過構造一個問題,用兩種不同的方法計算,由於是同一個問題,那么算出來的答案一定是相等的,從而證明等式,簡稱“算兩次”。
第一類斯特林數有如下特殊性質:

  1. \(s(0,0)=1\)
  2. \(s(n,0)=0\ n>0\)
  3. \(s(n,1)=(n-1)!\)
  4. \(s(n,n-1)=C_n^2\)
  5. \(s(n,2)=(n-1)!*\sum _{i=1}^{n-1}\frac{1}{i}\)
  6. \(s(n,n-2)=2C_n^3+3C_n^4\)
  7. \(\sum _{k=0}^ns(n,k)=n!\)

下面給出性質1,3,4,5的證明。

性質一

顯然,我們把\(n\)個元素排列起來,有\(n!\)種可能,首尾相接即可得到一個環。這里面每種情況重復了\(n\)次,因為可以旋轉\(n\)次,所以除以\(n\),得到\(s(n,1)=(n-1)!\).

性質三

\(s(n,2)=(n-1)!*\sum \_{i=1}^{n-1}\frac{1}{i}\)
這里給出數學歸納法的證明。
首先,\(s(2,2)=1*1=1\),符合定義。
下面通過遞推式和性質一證明性質三對於\(n\)也成立:

\[\begin{aligned} s(n+1,2)&=s(n,1)+s(n,2)*n \\ &=(n-1)!+n*(n-1)!*\sum _{i=1}^{n-1}\frac{1}{i} \\ &=(n-1)!+n!*\sum _{i=1}^{n-1}\frac{1}{i} \\ &=\frac{n!}{n}+n!*\sum _{i=1}^{n-1}\frac{1}{i} \\ &=n!*\sum _{i=1}^{n}\frac{1}{i} \\ \end{aligned} \]

得證!

性質四

同理可用數學歸納法強行計算。巧妙的方法我還沒想到。

性質五

這里有一個巧妙地“算兩次”方法。
首先構造一個問題,求\(n\)個數的所有排列。
首先用乘法原理直接得出結論,\(ans=n!\)
我們知道,對於一個排列對應一個置換,即:

\[\begin{pmatrix} 1 & 2 & ... & n \\ a_1 & a_2 & ... & a_n \end{pmatrix} \]

把這個置換中的上下對應位置連邊,可以得到許多的環。由於排列和置換是一一對應的,所以我們要求排列的個數,就是求用\(n\)個元素組成環的方案數,所以我們枚舉環的個數:

\[n!=\sum _{k=1}^ns(n,k) \]

由於我們有\(s(n,0)=0\),所以也可以寫成:

\[\sum _{k=0}^ns(n,k)=n! \]

第二類斯特林數

第二類斯特林數表示把\(n\)個元素分成\(k\)個非空集合的方案數,集合內是無序的。這樣,我們很容易得出轉移:
分為兩種情況。第一種情況,如果前\(n-1\)個元素組成了\(k-1\)個非空集合,那么當前元素自成一個集合。第二種情況,如果前\(n-1\)個元素組成了\(k\)個集合,那么當前的這個元素可以放進這\(k\)個集合中任意的一個。所以我們的到來遞推方程:

\[\begin{Bmatrix} n \\ k \end{Bmatrix}=\begin{Bmatrix} n-1 \\ k-1 \end{Bmatrix}+\begin{Bmatrix} n-1 \\ k \end{Bmatrix}*k \]

也可以寫成:

\[S(n,k)=S(n-1,k-1)+S(n-1,k)*k \]

性質

  1. \(S(0,0)=1\)
  2. \(S(n,0)=0,n>0\)
  3. \(S(n,n)=1\)
  4. \(S(n,2)=S(n-1,1)+S(n-1,2)*2=1+S(n-1,2)*2=2^{n-1}-1\)
  5. \(S(n,n-1)=C_n^2\)
  6. \(S(n,n-2)=C_n^3+3C_n^4\) 簡單巧妙的證明:我們分成兩種情況,把\(n\)個不同的元素分成\(n-2\)個集合有兩種情況,分別是有一個集合有三個元素和有兩個集合有兩個元素。對於前者,我們選出三個元素為一個集合,其他的各成一個集合,這種情況的方案數就是\(C_n^3\)。對於后者,先選出四個元素來,考慮怎么分配。當其中一個元素選定另一個元素形成同一個集合時,這種情況就確定了,所以是\(3C_n^4\)。加法原理計算和即得證。
  7. \(S(n,3)=\frac{1}{2}(3^{n-1}+1)-2^{n-1}\) 數學歸納法
  8. \(S(n,n-3)=C_n^4+10C_n^5+15C_n^6\) 同性質六

通項公式:

\[S(n,m)=\frac{1}{m!} \sum _{k=0}^m (-1)^kC_m^k(m-k)^n \]

大概就是容斥原理,\(k\)枚舉有多少個集合是空的,每種情況有\(C_m^k\)種空集情況,\(n\)個元素可以放進非空的\(m-k\)個集合中。這樣求出來的答案是有序的,所以我們除以\(m!\)使得其變為無序。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM