標籤: 第二類斯特林數函數
最近作題的時候遇到了一些跟第二類斯特林數有關的東西,發現網上的資料不是不少,因而寫一篇博客來總結一下。spa
第二類斯特林數\(S(n,m)\)表示的是把n個不一樣的小球放在m個相同的盒子裏方案數。
upd:爲了看得清楚,有時候咱們也用\(\begin {Bmatrix} n \\ m\end {Bmatrix}\)來表示\(S(n,m)\)博客
通常有兩種求法。
遞推:
\(S(n,m)=S(n-1,m-1)+mS(n-1,m)\)
即討論第一個球是否單獨在一個盒子裏面。
若是不獨佔一盒,那麼把這個球放進任一個盒子,這個盒子就至關於與其餘的盒子不一樣,那麼在乘答案的時候就要多乘一個m.class
容斥原理:
\[S(n,m)={\frac 1 {m!}}\sum_{k=0}^m (-1)^k C(m,k)(m-k)^n \]
即枚舉空盒的個數,剩下的隨意放置,因爲盒子是相同的最後要除以\(m!\)
注意到這個式子是一個卷積,因此能夠在\(O(nlogn)\)內求出\(S(n,0),S(n,1)......\)原理
只有一個公式
\[n^k=\sum_ { i=0}^k S(k,i)×i!×C(n,i) \]
很好理解,左邊就是k個球能夠任意放置在n個盒子裏。
右邊就是枚舉非空盒子的數量i,那麼把k個球放在i個盒子(盒子不一樣,須要乘上一個i!)裏面再乘上選出i個非空盒子的方案數。im
有了這個東西,咱們能夠很方便的維護一些東西。總結
upd:感受之前寫的菜爆了。。。。更新一點吧di
上面的性質與求法都是基於組合意義而來的,接下來咱們採用一個具備組合意義的等式,將其經過一些變換獲得上面的等式。
\[n^m=\sum_{k=0}^m \begin{Bmatrix} m \\k \end{Bmatrix} n^{\underline k}\]
\(x^{\underline k}\)是\(x\)的\(k\)次降低冪,就是\(x \times (x-1) \times(x-2)....\times(x-k+1)\)
(其實就是上面的性質啦)
固然準確來講這個式子纔是定義式,由於這個式子具備清晰的組合意義。
這個式子能夠方便的獲得遞推式:標籤
\[ \sum_{k=0}^m \begin{Bmatrix} m\\k\end{Bmatrix} n^{\underline k}= \sum_{k=1}^{m} \begin{Bmatrix} m-1\\k-1\end{Bmatrix} n^{\underline {k}} +\sum_{k=1}^{m} k\begin{Bmatrix} m-1\\k\end{Bmatrix} n^{\underline {k}} =\\ \sum_{k=0}^{m-1} \begin{Bmatrix} m-1\\k\end{Bmatrix} n^{\underline {k+1}} +\sum_{k=1}^{m} k\begin{Bmatrix} m-1\\k\end{Bmatrix} n^{\underline {k}} =(n-k+k)n^{m-1}=n^m\]display
固然這個步驟寫的不太嚴謹,若是把上面的式子倒過來就是正確的證實步驟,可是這樣推就不太好想(不過咱們已經知道告終論就隨便了)。
好像還有一個等式?
\[\begin{Bmatrix} m \\k \end{Bmatrix}={\frac 1 {k!}}\sum_{i=0}^k (-1)^{k-i} \binom {k} {i} i^m \]
再來審視一下以前的定義式。
\[k^m=\sum_{i=0}^k \begin{Bmatrix} m \\i \end{Bmatrix} i! \binom{k}{i}\]
咱們把\(m\)看做常量,令\(f_i=i^m,g_i=\begin{Bmatrix} m \\i \end{Bmatrix} i!\)。
那麼\(\binom{k}{i}\)至關於從\(g_i\)到\(f_k\)的一個轉移矩陣
直接二項式反演,得
\[\begin{Bmatrix} m \\k \end{Bmatrix} k!=\sum_{i=0}^k (-1)^{k-i} \binom {k} {i}i^m \]
再把\(k!\)移過去就獲得最初的式子了。
對第二類斯特林數的反演。
\[q_n=\sum_{i=1}^{n}\begin{Bmatrix}n \\ i\end{Bmatrix}p_i \Leftrightarrow p_n=\sum_{i=0}^{n}(-1)^{n-i}\begin{bmatrix}n \\ i\end{bmatrix}q_i\]
其中\(\begin{bmatrix} n\\ m\end{bmatrix}\)是第一類斯特林數,也能夠寫做\(s(n,m)\),在不做特殊的說明狀況的下(即\(s_s(n,m)\)表明有符號的第一類斯特林數),本文中寫到的均爲無符號的第一類斯特林數。
在這裏,咱們只須要知道\(s(n,m)\)的生成函數。
\[x^{\underline m}=\sum_{k=0}^m (-1)^{m-k}\begin{bmatrix} m\\k\end{bmatrix} x^k\quad [1] \\x^{\overline m}=\sum_{k=0}^m \begin{bmatrix} m\\k\end{bmatrix} x^k \]
其實這差很少就是有符號和無符號的區別,一個是降低冪,一個是上升冪。
咱們發現,這個式子與上面第二類斯特林數的定義式出奇的像。
\[x^m=\sum_{k=0}^m \begin{Bmatrix} m \\k \end{Bmatrix} x^{\underline k} \quad [2]\]
將\([1]\)式帶入\([2]\)中,得
\[x^m=\sum_{k=0}^m \begin{Bmatrix} m \\k \end{Bmatrix} \sum_{l=0}^k (-1)^{k-l}\begin{bmatrix} k\\l\end{bmatrix} x^l \\ =\sum_{l=0}^m x^l \sum_{k=l}^m (-1)^{k-l}\begin{Bmatrix} m \\k \end{Bmatrix}\begin{bmatrix} k\\l\end{bmatrix}\]
顯然獲得等式
\[[l=m]=\sum_{k=l}^m (-1)^{k-l}\begin{Bmatrix} m \\k \end{Bmatrix}\begin{bmatrix} k\\l\end{bmatrix}\]
接下來,咱們將斯特林反演的兩式相互帶入,不可貴出其等價與上式。
值得一提的是,咱們令矩陣\(f_{i,j}=\begin{Bmatrix} i \\ j \end{Bmatrix},g_{i,j}=(-1)^{i-j} \begin{bmatrix} i\\ j \end{bmatrix}\)
那麼根據上面的式子,有\(FG=E\),即矩陣\(F,G\)互逆。