在組合數學中,有幾個重要的「遞推數」,
而筆者今天要介紹的,
就是其中的第二類斯特林數。
第二類斯特林數(即斯特林子集數)\(\beginn\\k\end\),
也記作 \(s(n,k)\),
它表示將 \(n\) 個兩兩不同的元素,劃分為 \(k\) 個互不區分的非空子集的方案數。
每次加入乙個新元素時,有兩種方案:
根據加法原理,即可得出遞推式:
\(\beginn\\k\end=\beginn-1\\k-1\end+\beginn-1\\k\end\)
邊界:\(\beginn\\1\end=1\)。
最終,我們能得出以下程式:
to be continued……//第二類斯特林數模板
#includeusing namespace std;
const int n=5e3+5,mod=1e9+7;
int n,stirling[n][n];
int main()
return 0;
}
第二類斯特林數總結
標籤 第二類斯特林數 最近做題的時候遇到了一些跟第二類斯特林數有關的東西,發現網上的資料不是很多,於是寫一篇部落格來總結一下。第二類斯特林數 s n,m 表示的是把n個不同的小球放在m個相同的盒子裡方案數。upd 為了看得清楚,有時候我們也用 begin n m end 來表示 s n,m 一般有兩...
演算法 第二類斯特林數Stirling
第二類stirling數實際上是集合的乙個拆分,表示將n個不同的元素拆分成m個集合的方案數,記為 或者。第二類stirling數的推導和第一類stirling數類似,可以從定義出發考慮第n 1個元素的情況,假設要把n 1個元素分成m個集合則分析如下 1 如果n個元素構成了m 1個集合,那麼第n 1個...
第二類斯特林數 學習總結
前幾天在bz上的考試考到有關第二類斯特林數的東西 雖然說那道題目到最後並不需要用這個東西來化簡把 不過抱著學習的態度還是學了學有關第二類斯特林數的東西 第二類斯特林數s n,m 定義為把n個元素劃分成m個無序集合的方案數 根據這個定義我們不難寫出遞推式 設狀態s i,j 討論第i個元素是否單獨乙個集...