幾道數論題

2021-09-30 03:55:08 字數 3434 閱讀 4229

第二類

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...