/* 將N張卡分成若干個集合,集合不為空,有多少種分法。 f[n][m]表示n張卡分成m組的種類數,那麼f[n][m]=f[n-1][m-1]+f[n-1][m]*m,//第二類斯特靈數 而ans[n]=sum{f[n][l]}(1<=l<=m)。//ans為貝爾數,Bell數是將P個元素集合分到非空且不可區分例子的劃分個數。 其中:f[n-1][m-1]代表第n個人自成一堆; f[n-1][m]*m代表第n個人不自成一堆。 */ # include# include # include using namespace std; int f[2011][2011]; int main() { int i,l; int t,n; int ans[2011]; f[1][1]=1; ans[1]=1; for(i=2;i<=2000;i++) { f[i][1]=1;//i張卡在一本書裡 f[i][i]=1;//i張卡在i本書裡 ans[i]=2;//上面;兩種情況 for(l=2;l