各類數(二)—— 斯特林數

 

歡迎訪問https://blog.csdn.net/lxt_Lucia~~

宇宙第一小仙女\(^o^)/~~萌量爆表求帶飛=≡Σ((( つ^o^)つ~ dalao們點個關注唄~~

 

簡介

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

第一類斯特林數

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

 

 

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

                                                


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

                                                     s(n,k)=s(n−1,k−1)+s(n−1,k)∗k

性質

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

                                                              

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

性質一

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

性質三


這裏給出數學歸納法的證明。
首先,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個集合中任意的一個。所以我們的到來遞推方程:

                                                
也可以寫成:

                                             

性質

通項公式:

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

最後推送上斯特林公式求階乘長度

lg(n!)=lg(2*pi*n)/2+n*lg(n/e)

e=2.71828182845

pi=3.1415926

可直接推得位數:res = lg(2*pi*n)/2+n*lg(n/e)+1

轉自:https://www.cnblogs.com/owenyu/p/6724661.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章