日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【组合数学】第一类,第二类斯特林数(Stirling),Bell数

發(fā)布時間:2024/10/6 编程问答 80 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【组合数学】第一类,第二类斯特林数(Stirling),Bell数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

第一類斯特林數(shù)

定理:

第一類斯特林數(shù)S1(p,k)計數(shù)的是把p個對象排成k個非空循環(huán)排列的方法數(shù)。

證明:把上述定理敘述中的循環(huán)排列叫做圓圈

遞推公式:

S1(p,p)=1(p>=0),有p個人和P個圓圈,每個圓圈就只有一個人

S1(P,0)=0(P>=1)如果至少有1個人,那么任何安排都至少包含一個圓圈

S1(P,K)=(P-1)*S1(P-1,K)+S1(P-1,K-1)

設(shè)P個人的編號為1,2,3,4.....P,將P個人排成k個圓圈有兩種情況:

1.在一個圓圈里只有編號為P的人,排法有S1(P-1,K-1)個。

2.P至少和另外一個人在一個圓圈里。這些排法可以通過把1,2.....p-1排成k個圓圈,再把p放在1,2........p-1任意一個人的左邊,因此,第二種類型的排法有(p-1)*S1(p-1,k)種做法

在證明中,我們所作的就是把{1,2,3,4.......P}劃分到K個非空且不可區(qū)分的盒子,然后每個盒子中的元素排成一個循環(huán)排列

long long s1[maxn][maxn];//存放第一類Stirling數(shù) long long mod=1e9+7;//取模 void init() {s1[1][1]=1;for(int i=2;i<maxn;i++)for(int j=1;j<maxn;j++)s1[i][j]=(s1[i-1][j-1]+(i-1)*s1[i-1][j])%mod; }

第二類斯特林數(shù)

定理:

第二類Stirling數(shù)S2(P,K)計數(shù)表示把P元素劃分到k個不可區(qū)分的盒子里且沒有空盒子的劃分個數(shù)

證明:

S2(P,P)=1(P>=0)? ? ? ? ? ?

S2(P,0)=0 (p>=1)? ? ? ? ? ? ? ? ? ?

遞推公式:S2(p,k)=k*S2(p-1,k)+S2(p-1,k-1)? (1<=k<=p-1)

把{1,2,3,4......p}分到k個非空且不可區(qū)分的盒子里的劃分有兩種情況:

1.P單獨在一個集合,存在S2(p-1,k-1)種劃分個數(shù)

2.p不單獨在一個盒子的劃分,p和其他元素在一個集合,也就是在沒有放P之前,有p-1個元素已經(jīng)分到了K個非空且不可區(qū)分的盒子里,現(xiàn)在把P放進去,有K種選擇,存在K*S2(p-1,k)種劃分

long long s2[maxn][maxn];//存放第二類Stirling數(shù) long long mod=1e9+7;//取模 void init() {s2[1][1]=1;for(int i=2;i<maxn;i++)for(int j=1;j<maxn;j++)s2[i][j]=(s2[i-1][j-1]+j*s2[i-1][j])%mod; }

擴展:K!* S(P,K)計數(shù)就是把P元素集合劃分到K個可區(qū)分的盒子里,且沒有空盒子的劃分個數(shù)

Bell數(shù)

定理:B(P)是將P元素集合分到非空,且不可區(qū)分盒子的劃分個數(shù)(沒有要求分到幾個盒子里)

B(p)=S2(P,0)+S2(P,1)+S2(P,2)+S2(P,3)+S2(P,4)+........S2(P,n);

即先求出第二類斯特林數(shù),然后求和即可

總結(jié)

以上是生活随笔為你收集整理的【组合数学】第一类,第二类斯特林数(Stirling),Bell数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。