Catalan Number 卡特蘭數入門

2022-05-11 16:24:27 字數 1384 閱讀 1848

卡特蘭數

首先,我們設f(n)=序列個數為n的出棧序列種數。同時,我們假定,從開始到棧第一次出到空為止,這段過程中第乙個出棧的序數是k。特別地,如果棧直到整個過程結束時才空,則k=n。

令h(0)=1,h(1)=1,catalan數滿足遞迴式:h(n) = h(0)h(n-1) + h(1)h(n-2) + ... + h(n-1)*h(0) (n>=2)

該遞推關係的解為:h(n) = c(2n,n)/(n+1),n=0,1,2,3,... (其中c(2n,n)表示2n個物品中取n個的組合數)

問題描述

盛況空前的足球賽即將舉行。球賽門票售票處排起了球迷購票長龍。

按售票處規定,每位購票者限購一張門票,且每張票售價為50元。在排成長龍的球迷中有n個人手持面值50元的錢幣,另有n個人手持面值100元的錢幣。假設售票處在開始售票時沒有零錢。試問這2n個球迷有多少種排隊方式可使售票處不致出現找不出錢的尷尬局面。

例如當n=2是,用a表示手持50元面值的球迷,用b表示手持100元錢的球迷。則最多可以得到以下兩組不同的排隊方式,使售票員不至於找不出錢。

第一種:a a b b

第二種:a b a b

問題解決

這一類的問題有很多,但最終都脫離不了乙個問題:

棧的進出先後順序

很明顯,在棧裡,是只有先進了才能出,類似於..左右括號匹配問題(?)

雖然暴搜是可以解決資料範圍比較小的問題,但是如果資料大了就需要一些公式...

公式公式一

遞迴公式

h(0)=h(1)=1

h(n)= h(0)h(n-1)+h(1)h(n-2) + … + h(n-1)*h(0) (n>=2)

如果我們用這個公式顯然我們要使用遞迴演算法,那麼資料一大就在時空上很麻煩

公式二遞推公式

h(n)=h(n-1)(4n-2)/(n+1)

這個公式應用遞推,看上起十分和善

但對大資料呢?

我們注意到大資料的時候h(n)會很大,這時候題目一般會讓你對某素數取模(當然你可以打高精度(劃掉))

但你在取模過程中難保乙個h(n)%mod=0

那麼根據公式下面所有的數都會等於0.

公式三組合數公式1

h(n)=c(2n,n)/(n+1) (n=0,1,2,…)

卡特蘭數可以與組合數聯絡起來,得到上面的公式

而組合數就是乙個楊輝三角,可以遞推得到(這個不屬於這道題的討論範圍我假裝你們都會(逃))

但我們發現對於大資料你要取模,而對於除法你是沒辦法用膜的性質的(當然你可以應用逆元(劃掉)),所以造成了麻煩

公式四組合數公式2

h(n)=c(2n,n)-c(2n,n-1) (n=0,1,2,…)

與組合數公式1不同這個是兩個組合數的減法

減法是可以用膜的性質的.

ov.

Catalan Number 卡特蘭數

其前幾項為 1,1,2,5,14,42,132,429,1430,4862,16796,58786,208012,742900,2674440,9694845,35357670,129644790,477638700,1767263190,6564120420,24466267020,9148256...

Catalan Number 卡特蘭數

卡特蘭數是乙個比較有意思的數列,有幾個經典問題的模型如下 1.n對括號的合法表示式有多少種可能,其中答案為c n 表示卡特蘭數列的第n項 2.有n個節點的二叉樹的所有可能形態有多少種,也是c n 3.計算有n 1個葉節點的滿二叉樹有多少種,也是c n 4.序列的所有排列中不出現 123 或者任何乙個...

卡特蘭數(catalan number)

卡塔蘭數是組合數學中乙個常在各種計數問題中出現的數列。公式為 前幾項為 n 0,1,2,3,4,5時 1,1,2,5,14,42 2.1 乙個棧的進棧次序為1 2 3 n。有多少種不同的出棧次序?當 2.2 有n個結點,總共能構成幾種不同的二叉樹?當 2.3 其它常見問題 1.n對括號有多少種匹配方...