簡介
斯特林數是組合數學中的一個重要內容,有許多有用的性質。它由十八世紀的蘇格蘭數學家James Stirling首先發現並說明了它們的重要性。
斯特林數主要處理的是把\(N\)個不同的元素分成\(k\)個集合或環的個數問題。現在我們說的斯特林數可以指兩類數,分為第一類斯特林數和第二類斯特林數,其中第一類斯特林數還分成有符號和無符號兩種。
第一類斯特林數
這里僅討論有符號的第一類斯特林數。
第一類斯特林數表示的是將\(n\)個不同元素分成\(k\)個不同的環的方案數。兩個環不相同當且僅當這兩個環不能通過旋轉得到。表示方法為:
考慮遞推,把\(n\)個不同元素分成\(k\)個不同的環有兩種轉移。第一種,有可能是\(n-1\)個不同元素分成\(k-1\)個不同的環,當前的第\(n\)個獨立成一個元素。第二種可能是\(n-1\)個不同元素已經分好了\(k\)個不同的環,當前這個可以加進去。加在每個已有元素的逆時針方向(或順時針方向,方向沒有關系,只要統一即可)就不會出現重復,共有\(n-1\)種方法,所以:
這就是第一類斯特林數的遞推式,也可以寫成:
性質
組合數學中的定理暴力求解可行,但是不好玩。所以組合數學中很多定理的證明是通過構造一個問題,用兩種不同的方法計算,由於是同一個問題,那么算出來的答案一定是相等的,從而證明等式,簡稱“算兩次”。
第一類斯特林數有如下特殊性質:
- \(s(0,0)=1\)
- \(s(n,0)=0\ n>0\)
- \(s(n,1)=(n-1)!\)
- \(s(n,n-1)=C_n^2\)
- \(s(n,2)=(n-1)!*\sum _{i=1}^{n-1}\frac{1}{i}\)
- \(s(n,n-2)=2C_n^3+3C_n^4\)
- \(\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\)也成立:
得證!
性質四
同理可用數學歸納法強行計算。巧妙的方法我還沒想到。
性質五
這里有一個巧妙地“算兩次”方法。
首先構造一個問題,求\(n\)個數的所有排列。
首先用乘法原理直接得出結論,\(ans=n!\)。
我們知道,對於一個排列對應一個置換,即:
把這個置換中的上下對應位置連邊,可以得到許多的環。由於排列和置換是一一對應的,所以我們要求排列的個數,就是求用\(n\)個元素組成環的方案數,所以我們枚舉環的個數:
由於我們有\(s(n,0)=0\),所以也可以寫成:
第二類斯特林數
第二類斯特林數表示把\(n\)個元素分成\(k\)個非空集合的方案數,集合內是無序的。這樣,我們很容易得出轉移:
分為兩種情況。第一種情況,如果前\(n-1\)個元素組成了\(k-1\)個非空集合,那么當前元素自成一個集合。第二種情況,如果前\(n-1\)個元素組成了\(k\)個集合,那么當前的這個元素可以放進這\(k\)個集合中任意的一個。所以我們的到來遞推方程:
也可以寫成:
性質
- \(S(0,0)=1\)
- \(S(n,0)=0,n>0\)
- \(S(n,n)=1\)
- \(S(n,2)=S(n-1,1)+S(n-1,2)*2=1+S(n-1,2)*2=2^{n-1}-1\)
- \(S(n,n-1)=C_n^2\)
- \(S(n,n-2)=C_n^3+3C_n^4\) 簡單巧妙的證明:我們分成兩種情況,把\(n\)個不同的元素分成\(n-2\)個集合有兩種情況,分別是有一個集合有三個元素和有兩個集合有兩個元素。對於前者,我們選出三個元素為一個集合,其他的各成一個集合,這種情況的方案數就是\(C_n^3\)。對於后者,先選出四個元素來,考慮怎么分配。當其中一個元素選定另一個元素形成同一個集合時,這種情況就確定了,所以是\(3C_n^4\)。加法原理計算和即得證。
- \(S(n,3)=\frac{1}{2}(3^{n-1}+1)-2^{n-1}\) 數學歸納法
- \(S(n,n-3)=C_n^4+10C_n^5+15C_n^6\) 同性質六
通項公式:
大概就是容斥原理,\(k\)枚舉有多少個集合是空的,每種情況有\(C_m^k\)種空集情況,\(n\)個元素可以放進非空的\(m-k\)個集合中。這樣求出來的答案是有序的,所以我們除以\(m!\)使得其變為無序。