標籤: 第二類斯特林數
最近做題的時候遇到了一些跟第二類斯特林數有關的東西,發現網上的資料不是很多,於是寫一篇部落格來總結一下。
第二類斯特林數\(s(n,m)\)表示的是把n個不同的小球放在m個相同的盒子裡方案數。
upd:為了看得清楚,有時候我們也用\(\begin n \\ m\end \)來表示\(s(n,m)\)
一般有兩種求法。
遞推:\(s(n,m)=s(n-1,m-1)+ms(n-1,m)\)
即討論第乙個球是否單獨在乙個盒子裡面。
如果不獨佔一盒,那麼把這個球放進任乙個盒子,這個盒子就相當於與其他的盒子不同,那麼在乘答案的時候就要多乘乙個m.
容斥原理:
\[s(n,m)=}\sum_^m (-1)^k c(m,k)(m-k)^n
\]即列舉空盒的個數,剩下的隨意放置,由於盒子是相同的最後要除以\(m!\)
注意到這個式子是乙個卷積,所以可以在\(o(nlogn)\)內求出\(s(n,0),s(n,1)......\)
只有乙個公式
\[n^k=\sum_ ^k s(k,i)×i!×c(n,i)
\]很好理解,左邊就是k個球可以任意放置在n個盒子裡。
右邊就是列舉非空盒子的數量i,那麼把k個球放在i個盒子(盒子不同,需要乘上乙個i!)裡面再乘上選出i個非空盒子的方案數。
有了這個東西,我們可以很方便的維護一些東西。
upd:感覺以前寫的菜爆了。。。。更新一點吧
上面的性質與求法都是基於組合意義而來的,接下來我們採用乙個具有組合意義的等式,將其通過一些變換得到上面的等式。
\[n^m=\sum_^m \begin m \\k \end n^
\]\(x^\)是\(x\)的\(k\)次下降冪,就是\(x \times (x-1) \times(x-2)....\times(x-k+1)\)
(其實就是上面的性質啦)
當然準確來說這個式子才是定義式,因為這個式子具有清晰的組合意義。
這個式子可以方便的得到遞推式:
\[\sum_^m \begin m\\k\end n^=
\sum_^ \begin m-1\\k-1\end n^} +\sum_^ k\begin m-1\\k\end n^} =\\
\sum_^ \begin m-1\\k\end n^} +\sum_^ k\begin m-1\\k\end n^}
=(n-k+k)n^=n^m\]
當然這個步驟寫的不太嚴謹,如果把上面的式子倒過來就是正確的證明步驟,但是這樣推就不太好想(不過我們已經知道了結論就隨便了)。
好像還有乙個等式?
\[\begin m \\k \end=}\sum_^k (-1)^ \binom i^m
\]再來審視一下之前的定義式。
\[k^m=\sum_^k \begin m \\i \end i! \binom
\]我們把\(m\)看作常量,令\(f_i=i^m,g_i=\begin m \\i \end i!\)。
那麼\(\binom\)相當於從\(g_i\)到\(f_k\)的乙個轉移矩陣
直接二項式反演,得
\[\begin m \\k \end k!=\sum_^k (-1)^ \binom i^m
\]再把\(k!\)移過去就得到最初的式子了。
對第二類斯特林數的反演。
\[q_n=\sum_^\beginn \\ i\endp_i \leftrightarrow p_n=\sum_^(-1)^\beginn \\ i\endq_i
\]其中\(\begin n\\ m\end\)是第一類斯特林數,也可以寫作\(s(n,m)\),在不作特殊的說明情況的下(即\(s_s(n,m)\)代表有符號的第一類斯特林數),本文中寫到的均為無符號的第一類斯特林數。
在這裡,我們只需要知道\(s(n,m)\)的生成函式。
\[x^=\sum_^m (-1)^\begin m\\k\end x^k\quad [1]
\\x^=\sum_^m \begin m\\k\end x^k \]
其實這差不多就是有符號和無符號的區別,乙個是下降冪,乙個是上公升冪。
我們發現,這個式子與上面第二類斯特林數的定義式出奇的像。
\[x^m=\sum_^m \begin m \\k \end x^ \quad [2]
\]將\([1]\)式帶入\([2]\)中,得
\[x^m=\sum_^m \begin m \\k \end \sum_^k (-1)^\begin k\\l\end x^l \\
=\sum_^m x^l \sum_^m (-1)^\begin m \\k \end\begin k\\l\end\]
顯然得到等式
\[[l=m]=\sum_^m (-1)^\begin m \\k \end\begin k\\l\end
\]接下來,我們將斯特林反演的兩式相互帶入,不難得出其等價與上式。
值得一提的是,我們令矩陣\(f_=\begin i \\ j \end,g_=(-1)^ \begin i\\ j \end\)
那麼根據上面的式子,有\(fg=e\),即矩陣\(f,g\)互逆。
演算法 第二類斯特林數Stirling
第二類stirling數實際上是集合的乙個拆分,表示將n個不同的元素拆分成m個集合的方案數,記為 或者。第二類stirling數的推導和第一類stirling數類似,可以從定義出發考慮第n 1個元素的情況,假設要把n 1個元素分成m個集合則分析如下 1 如果n個元素構成了m 1個集合,那麼第n 1個...
學習筆記 第二類斯特林數
在組合數學中,有幾個重要的 遞推數 而筆者今天要介紹的,就是其中的第二類斯特林數。第二類斯特林數 即斯特林子集數 beginn k end 也記作 s n,k 它表示將 n 個兩兩不同的元素,劃分為 k 個互不區分的非空子集的方案數。每次加入乙個新元素時,有兩種方案 根據加法原理,即可得出遞推式 b...
第二類斯特林數 學習總結
前幾天在bz上的考試考到有關第二類斯特林數的東西 雖然說那道題目到最後並不需要用這個東西來化簡把 不過抱著學習的態度還是學了學有關第二類斯特林數的東西 第二類斯特林數s n,m 定義為把n個元素劃分成m個無序集合的方案數 根據這個定義我們不難寫出遞推式 設狀態s i,j 討論第i個元素是否單獨乙個集...