1. 程式人生 > >特殊計數序列——第二類斯特林(stirling)數

特殊計數序列——第二類斯特林(stirling)數

計數 line 序列 nlogn 並且 變化 方案 關於 必須

計算式

\[ S(n,m)=S(n-1,m-1)+mS(n,m) \]

\(S(0,0)=1,S(i,0)=0(i>0)\)

組合意義

\(n\)個不可分辨的小球放入\(m\)個不可分辨的盒子中,且每個盒子非空

那麽上面的式子就類似與\(dp\)的轉移了

性質

1、\(S(n,m)=\frac{1}{m!}\sum_{i=0}^m(-1)^i\dbinom{m}{i}(m-i)^n\)

證明:考慮組合意義

先將盒子變成有序,最後除以\(m!\)即可

第二類斯特林數保障每個盒子非空,故考慮容斥,每次欽定\(i\)個盒子必須為空,選法有\(\dbinom{m}{i}\)種,\(n\)個小球放入剩下的\((m-i)\)

個盒子中共有\((m-i)^n\)種放法

2、\(n^m=\sum_{i=0}^nS(m,i)*i!*\dbinom{n}{i}\)

證明:依然是考慮組合意義,左邊是\(m\)個小球隨意的放入\(n\)個盒子的方案數,並且考慮順序

右邊是枚舉非空的盒子一共有\(i\)個,球放入的方案數為\(S(m,i)\),有順序的選\(i\)個盒子有\(i!*\dbinom{n}{i}\)種方案

關於這個式子還有一個小技巧:為了使\(S(m,i)\)\(\dbinom{n}{i}\)的值均大於\(0\),一定有\(i\leq min(n,m)\),所以我們枚舉的sigma上界是可以根據我們的需求進行變化的

求解第二類斯特林數

\(S(n,m)\)的值

普通求解是\(O(n^2)\)的遞推,考慮其他的方法

由性質1的式子變形可以得到
\[ S(n,m)=\frac{1}{m!}\sum_{i=0}^m(-1)^i\frac{m!}{k!(m-k)!}(m-k)^n \]

\[ S(n,m)=\sum_{i=0}^n\frac{(-1)^k}{k!}\frac{(m-k)^n}{(m-k)!} \]

直接FFT即可,時間復雜度\(O(nlogn)\)

特殊計數序列——第二類斯特林(stirling)數