演算法 第二類斯特林數Stirling

2022-04-21 17:35:19 字數 664 閱讀 7601

第二類stirling數實際上是集合的乙個拆分,表示將n個不同的元素拆分成m個集合的方案數,記為

或者。第二類stirling數的推導和第一類stirling數類似,可以從定義出發考慮第n+1個元素的情況,假設要把n+1個元素分成m個集合則分析如下:

(1)如果n個元素構成了m-1個集合,那麼第n+1個元素單獨構成乙個集合。方案數

。(2)如果n個元素已經構成了m個集合,將第n+1個元素插入到任意乙個集合。方案數 m*s(n,m) 。

綜合兩種情況得:

遞推式:dp[i][j] = dp[i-1][j-1]+j*dp[i-1][j];

模板**:

dp[0][0] = 1

;

for(int i = 1;i <= n; i++)

}

n=01

n=10 1

n=20 1 1

n=30 1 3 1

n=40 1 7 6 1

n=50 1 15 25 10 1

n=60 1 31 90 65 15 1

n=70 1 63 301 350 140 21 1

n=80 1 127 966 1701 1050 266 28 1

n=90 1 255 3025 7770 6951 2646 462 36 1

第二類斯特林數總結

標籤 第二類斯特林數 最近做題的時候遇到了一些跟第二類斯特林數有關的東西,發現網上的資料不是很多,於是寫一篇部落格來總結一下。第二類斯特林數 s n,m 表示的是把n個不同的小球放在m個相同的盒子裡方案數。upd 為了看得清楚,有時候我們也用 begin n m end 來表示 s n,m 一般有兩...

學習筆記 第二類斯特林數

在組合數學中,有幾個重要的 遞推數 而筆者今天要介紹的,就是其中的第二類斯特林數。第二類斯特林數 即斯特林子集數 beginn k end 也記作 s n,k 它表示將 n 個兩兩不同的元素,劃分為 k 個互不區分的非空子集的方案數。每次加入乙個新元素時,有兩種方案 根據加法原理,即可得出遞推式 b...

模板 第二類斯特林數 列

從通項公式入手好像不行了。法一 直接從定義入手 把n個球劃分成m個等價類 假設等價類兩兩不同,最後除以m!直接上egf,a 1 i x i a m的i次項係數,再乘上i!再除以m!法二 從遞推公式入手 s n,m s n 1,m 1 m s n 1,m 設ogf s m x 是第m列二斯的ogf,則...