第二類
stirling數
n個有類別的球放到
m個相同的盒子中,要求不能有空盒,有多少種放法?
這道題就是第二類
stirling
數的經典例子,表示為
s(n,m)。
它有遞推關係
s(n,m)=m*s(n-1,m)+s(n-1,m-1)
其中n,m>=1
當盒子數大於球數的時候即
m>n
有s(n,m)=0
盒子和球的問題
這個問題在高中的排列組合中就經常碰到,下面就列個表分析一下它們的性質: n
個球 m個盒子
是否允許空盒
方案數有區別
有區別 是
m^n有區別
有區別 否
m!*s(n,m)
有區別
無區別 是
∑1m
s(n,i)
有區別
無區別 否
s(n,m)
無區別
有區別 是
c(n+m-1,n)
無區別
有區別 否
c(n-1,m-1)
無區別
無區別 是
xn的係數
無區別
無區別 否
xn的係數 1
、這個很好理解。 2
、這個可以通過盒子沒有區別來理解,當盒子有區別時,盒子產生了
m!種可能了。 3
、這個跟
4是乙個意思,不過盒子可以為空,就當這個盒子不存在。 4
、這個是
stirling
數的性質。 5
、這個可以用隔板的思想來理解,有
n+m-1
個位置,其中先用
m-1個位置放置隔板,剩下的放置球,隔板隔開的就是盒子裡面的球,關鍵是如何選擇隔板的位置,相當於如何選擇球的位置。 6
、當盒子不能為空時,隔板的放法就有限制了,只能選擇球之間的位置,而且每個這樣的位置至多只能放置一塊這樣的隔板。 7
、在球和盒子都沒有區別的分析中,可能讀者還深感疑惑,下面將深入分析:
這個問題可以很直接第地轉化為
n可以分解為
m個數的和,有多少種分法。
設式子(1+x+x2+x3+x4…)
表示乙個數可以分解為多少個
1的可選式子,
x的指數部分
/1表示分解為
1的個數;
設式子(1+x2+x4+x6+x8…)
表示乙個數可以分解為多少個
2的可選式子,
x的指數部分
/2表示分解為
2的個數; …
設式子(1+x2r+x4r+x6r+x8r…)
表示乙個數可以分解為多少個
r的可選式子,
x的指數部分
/r表示分解為
r的個數;
這樣,(1+x+x2+x3+x4…)* (1+x2+x4+x6+x8…)*…* (1+x2r+x4r+x6r+x8r…)
展開後xn
的係數(
假設r>=n)就是n
分解為若干數的和的種類數。
r的作用就是控制其中分解的最大數字:
例如對6進行分解,如果要求最大的數不能超過
2,則只有
(1,1,1,1,1,1)
,(2,1,1,1,1)
,(2,2,1,1)
,(2,2,2)這4
種分法,對應於上式,則分別是
x6*1
,x4*x2
,x2*x4
,1*x6
,對應於格仔圖
(ferrer圖)
,將格仔其按紅色的線旋轉,得到下面的格仔圖,這就是分解不超過兩個數的格仔圖。也就是說將
n分解成不超過
m=2個數的分法,等價於將
n分解成的數不超過
m的分法,等價於將無區別的
n個球放入無區別的
m個盒子中,盒子可以為空。
8、當盒子不能為空時候,取
n個無區別的球放入無區別的
m個盒子,盒子可以為空的放法,減去,取
n個無區別的球放入無區別的
m-1個盒子,盒子可以為空的放法,即得,取
n個無區別的球放入無區別的
m個盒子,盒子不可以為空。
關於自然數的分解,我這裡寫了個程式,有興趣的讀者可以編譯執行一下,不過執行
70以上的
data
,可能就要等上
10s並且準備
160m
的空間存放輸出檔案了。
貝爾數(bell數--
集合劃分數)
給定乙個n表示
這樣的集合,比如給定3表示
它可以構造出 }
} }} }
這樣5個集合。題目給出
n,算出能構造多少個這樣的集合。
貝爾數就是集合的劃分數。它具有以下性質: 1
1 22 3 5
5 7 10 15
...它的第一行第一項是1
第n行第一項是第
n-1行的最後一項,其他則為左邊的數加上面的數,每一行的最後那個數,也就是下一行的第乙個數,就是這道題的答案。這道題也可以用上面講的
stirling
數來解決,盒子分析的第三種情況,也是這道題的答案,讀者自己分析一下吧。
卡特蘭(catalan)數
令h(0)=1
且h(n)=c(2n,n)/(n+1) (n=1,2,3,…)
這種數可以解決括號化問題,出棧次序問題,多邊形劃分為三角形問題,二叉樹種類問題。 1
、括號化問題來自矩陣連乘:
p=a1×a2×a3×……×an
,依據乘法結合律,不改變其順序,只用括號表示成對的乘積,試問有幾種括號化的方案?
(h(n-1)種)
2、出棧次序問題來自棧本身固有的先進先出的性質,這種性質決定了棧不能產生全部的序列。這個問題可以衍生為排隊入場問題,即電影票
5元一張,售票員在沒有觀眾進場前沒有備有零錢,但是排隊的
2n個人當中有
n個是持
5元鈔票,另外
n個是持
10元鈔票,要令到售票員能順利讓所有人看到電影,有多少種排隊方法。
h(n)種
3、多邊形劃分是指將乙個
n+2條邊的凸多邊形分成三角形區域的方法數問題。衍生出來的問題有方塊走法問題,即
n個方塊
*n個方塊
的地圖中,從最左上角走到最右下角
(下圖中1走到
2),路程最短的走法有多少種。
h(n)種
124、給定頂點組成二叉樹的問題。 給定
n個頂點,能構成多少種不同的二叉樹。
h(n)種
數論題目小記
題目描述 求n到n m內的素數個數 解題報告 數論題目有時複雜度看著很大,實際上並沒有那麼大 詳見 include define ll long long using namespace std const int n 1e6 3 ll n,m,pr n tot,s n bool vis n int...
一道數論題目
有100盞燈,編號1 100,初始時都是亮著燈。有一百個小孩,編號1 100。每盞燈對應乙個開關,按下時燈亮,再按則燈滅。讓這一百個小孩依次按開關,每個小孩只能按其編號倍數的開關。比如1號小孩可以按所有開關,2號小孩只能按編號為偶數的開關,以此類推。請問所有的小孩都按過開關以後 注意 每個小孩都必須...
數論題目整理(持續補充)
題目鏈結 對於2,不止有因子2還有其他素數因子,能達到的最大數為3 2 k3 2 k 3 2k 只有乘以3,k才有可能最大 對於x 2的數,不止有因子x,能達到的最大數為2 x k2 x k 2 xk 題目要求我們求出小於n的,不能被表示成素數的整數次冪的數,的最小公倍數 由算數基本定理,lcm p...