1. 程式人生 > >第一類斯特林數學習小記

第一類斯特林數學習小記

概念

問題來源

p個不同人圍k個相同圓桌而坐,要求各桌非空,其不同方案數為第一類Stirling數S(p,k)

問題解決

S(p,p)1(p0)S(p,0)0(p1)
分類討論。
一類,人1獨圍一圓桌:S(p1,k1)
二類 ,人1不獨圍一圓桌:先安排人2,人3,…, 人p,再把人1安排在人2,人3,…,人p任一人的 左邊,有(p1)S(p1,k)個。
綜上所述:S(p,k)S(p1,k1)(p1)S(p1,k)
這個是第一類斯特林數的組合概念。

另一種概念

PpnnkCpn

nk

Ppn=Cpnp!=n(n1)(n2)(np+1)[a]
式子a展開
得到
Ppnn(n1)(n2)(np1)
S(p,p)npS(p,p1)np1S(p,pk)npkS(p,0)n0
正負交替
所以
k=0p=(1)pkS(p,k)nk
這個才是第一類斯特林數的定義。
所以第一類斯特林數S就是排列數公式的展開式的係數,也是如上所述的那個東西。

第一類斯特林數遞推

顯然S(p,p)1S(p,0)0
S(p,k)(k1,2,,p1)滿足:
S(p,k)(p1)S(p1,k)

S(p1,k1)
其實可以證明為什麼排列數展開式滿足這個條件的,這裡不詳說。

應用

解決自然數冪和參見用第一類斯特林數解決自然數冪和,或者一些組合數學的問題。
這個第一類斯特林數做自然數冪和簡直是極品,你可以做一做WYF的盒子。正常打自然數冪和的在mod意義下操作的題目都要打中國剩餘定理來取模,但是我們發現我們求得是排列數,就是可以一坨數乘起來,沒有除號運算。然後在除以k+1的過程中,因為n-k+1到n一共有k個數,一定有且只有一個數是k+1的倍數,那麼可以直接整除,就省去了除法部分了。

題目