5. 卡特蘭數(Catalan)公式、證明、代碼、典例.


不好意思,沒想到博客搬家的時候把格式給弄亂了,這邊看的不方便,可以移步:https://blog.csdn.net/Sherry_Yue/article/details/88364746

1. 定義

卡特蘭數(卡塔蘭數),英文名Catalan number,是組合數學中一個常出現在各種計數問題中出現的數列。
其前幾項為(從第零項開始) :

C0 = 1,         
C1 = 1,         C2 = 2,          C3 = 5,          C4 = 14,          C5 = 42,
C6 = 132,       C7 = 429,        C8 = 1430,       C9 = 4862,        C10 = 16796,
C11 = 58786,    C12 = 208012,    C13 = 742900,    C14 = 2674440,    C15 = 9694845,
C16 = 35357670, C17 = 129644790, C18 = 477638700, C19 = 1767263190, C20 = 6564120420, ...

2. 公式

通項公式1:Cn=11+n(2nn)=11+nC2nn=(2n)!(n+1)!n!C_n=\frac{1}{1+n}{2n \choose n}=\frac{1}{1+n}C_{2n}^n=\frac{(2n)!}{(n+1)!n!}Cn=1+n1(n2n)=1+n1C2nn=(n+1)!n!(2n)!

通項公式2:Cn=1n+1∑i=0n(ni)2=1n+1∑i=0n(Cni)2C_n=\frac{1}{n+1}\sum_{i=0}^n{n \choose i}^2=\frac{1}{n+1}\sum_{i=0}^n(C_n^i)^2Cn=n+11i=0n(in)2=n+11i=0n(Cni)2

遞推公式1:Cn+1=2(2n+1)n+2CnC_{n+1}=\frac{2(2n+1)}{n+2}C_nCn+1=n+22(2n+1)CnC0=1C_0=1C0=1

遞推公式2:Cn+1=∑i=0nCiCn−iC_{n+1}=\sum_{i=0}^{n}C_iC_{n-i}Cn+1=i=0nCiCniC0=1C_0=1C0=1n>=0n>=0n>=0

性質:Cn=(2nn)−(2nn−1)=C2nn−C2nn−1C_n={2n \choose n}-{2n \choose n-1}=C_{2n}^n-C_{2n}^{n-1}Cn=(n2n)(n12n)=C2nnC2nn1

漸近增長:Cn∼4nn32πC_n\sim\frac{4^n}{n^{\frac{3}{2}}\sqrt{\pi}}Cnn23π4n

3. Catalan公式推導

我們根據遞推公式2:Cn+1=∑i=0nCiCn−iC_{n+1}=\sum_{i=0}^{n}C_iC_{n-i}Cn+1=i=0nCiCniC0=1C_0=1C0=1n>=0n>=0n>=0

可以得到這樣一個函數:hn=∑k=1n−1hkhn−kh_n=\sum_{k=1}^{n-1}h_kh_{n-k}hn=k=1n1hkhnkn>=2n>=2n>=2

由於這個遞推關系不是線性的,hnh_nhn並不依賴於其前面的某個固定值,而依賴於前面的所有值,所以遞推公式2就用不上了。

不妨令生成函數:
g(x)=h1x+h2x2+h3x3+……+hnxn+……g(x)=h_1x+h_2x^2+h_3x^3+……+h_nx^n+……g(x)=h1x+h2x2+h3x3++hnxn+

將g(x)與自己相乘:
[g(x)]2=h12x12+(h1h2+h2h1)x3+(h1h3+h2h2+h3h1)x4+……+(h1hn−1+h2hn−2+……+hn−1h1)xn+……[g(x)]^2=h_1^2x_1^2+(\color{fuchsia}h_1h_2+h_2h_1\color{black})x^3+(\color{red}h_1h_3+h_2h_2+h_3h_1\color{black})x^4+……+(h_1h_{n-1}+h_2h_{n-2}+……+h_{n-1}h_1)x^n+……[g(x)]2=h12x12+(h1h2+h2h1)x3+(h1h3+h2h2+h3h1)x4++(h1hn1+h2hn2++hn1h1)xn+

又根據卡特蘭數前兩項均為1,即h1=h2=1h_1=h_2=1h1=h2=1,以及上面得到的hnh_nhn的遞推關系代入得到:
[g(x)]2=h2x2+h3x3+h4x4+……+hnxn+……=g(x)−h1x=g(x)−x[g(x)]^2=h_2x^2+h_3x^3+h_4x^4+……+h_nx^n+……=g(x)-\color{blue}h_1x\color{black}=g(x)-x[g(x)]2=h2x2+h3x3+h4x4++hnxn+=g(x)h1x=g(x)x

於是有:
[g(x)]2−g(x)+x=0[g(x)]^2-g(x)+x=0[g(x)]2g(x)+x=0

解得:
g1(x)=1+1−4x2g_1(x)=\frac{1+\sqrt{1-4x}}{2}g1(x)=21+14x
g2(x)=1−1−4x2g_2(x)=\frac{1-\sqrt{1-4x}}{2}g2(x)=2114x

由g(x)的定義知道g(0)=0g(0)=0g(0)=0,驗證上述根只有g2(x)g_2(x)g2(x)成立,所以生成函數:
g(x)=g2(x)=1−1−4x2=12−12(1−4x)1/2g(x)=g_2(x)=\frac{1-\sqrt{1-4x}}{2}=\frac{1}{2}-\frac{1}{2}(1-4x)^{1/2}g(x)=g2(x)=2114x=2121(14x)1/2

根據牛頓二項式定理:
(1+z)12=1+∑n=1∞(−1)n−1n∗22n−1(2n−2n−1)zn\begin{aligned} (1+z)^{\frac{1}{2}} &= 1+\sum_{n=1}^{\infty}\frac{(-1)^{n-1}}{n*2^{2n-1}}{2n-2\choose n-1} z^n\end{aligned}(1+z)21=1+n=1n22n1(1)n1(n12n2)zn
將g(x)中的項展開:
(1−4x)12=1+∑n=1∞(−1)n−1n∗22n−1(2n−2n−1)(−4x)n=1+∑n=1∞(−1)n−1n∗22n−1(2n−2n−1)22nxn=1−∑n=1∞2n(2n−2n−1)xn=1−2∑n=1∞1n(2n−2n−1)xn(∣x∣&lt;14)\begin{aligned} (1-4x)^{\frac{1}{2}} &amp;= 1+\sum_{n=1}^{\infty}\frac{(-1)^{n-1}}{n*2^{2n-1}}{2n-2\choose n-1}(-4x)^n\\ &amp;= 1+\sum_{n=1}^{\infty}\frac{(-1)^{n-1}}{n*2^{2n-1}}{2n-2\choose n-1}2^{2n}x^n \\ &amp;= 1-\sum_{n=1}^{\infty}\frac{2}{n}{2n-2\choose n-1}x^n\\ &amp;= 1-2\sum_{n=1}^{\infty}\frac{1}{n}{2n-2\choose n-1}x^n &amp;(|x|&lt;\frac{1}{4})\end{aligned}(14x)21=1+n=1n22n1(1)n1(n12n2)(4x)n=1+n=1n22n1(1)n1(n12n2)22nxn=1n=1n2(n12n2)xn=12n=1n1(n12n2)xn(x<41)
所以:
g(x)=12−12(1−4x)1/2=12−12[1−2∑n=1∞1n(2n−2n−1)xn]=∑n=1∞1n(2n−2n−1)xn\begin{aligned} g(x)&amp;=\frac{1}{2}-\frac{1}{2}(1-4x)^{1/2}\\ &amp;=\frac{1}{2}-\frac{1}{2}[1-2\sum_{n=1}^{\infty}\frac{1}{n}{2n-2\choose n-1}x^n] \\ &amp;= \sum_{n=1}^{\infty}\frac{1}{n}{2n-2\choose n-1}x^n \end{aligned}g(x)=2121(14x)1/2=2121[12n=1n1(n12n2)xn]=n=1n1(n12n2)xn

故通項公式為:hn=1n(2n−2n−1)h_n=\frac{1}{n}{2n-2\choose n-1}hn=n1(n12n2)(n&gt;=1)(n&gt;=1)(n>=1)

即:hn=11+n(2nn)h_n=\frac{1}{1+n}{2n \choose n}hn=1+n1(n2n)(n&gt;=0)(n&gt;=0)(n>=0)

4. 卡特蘭數的代碼實現

//函數功能: 計算Catalan的第n項
//函數參數: n為項數
//返回值: 第n個Catalan數
int Catalan(int n)
{
	if(n<=1) return 1;
	int *h = new int [n+1]; //保存臨時結果
	h[0] = h[1] = 1;        //h(0)和h(1)
	for(int i=2;i<=n;++i)    //依次計算h(2),h(3)...h(n)
	{
		h[i] = 0;
		for(int j = 0; j < i; j++) //根據遞歸式計算 h(i)= h(0)*h(i-1)+h(1)*h(i-2) + ... + h(i-1)h(0)
			h[i] += (h[j] * h[i-1-j]);
	}
	int result = h[n]; //保存結果
	delete [] h;       //注意釋放空間
	return result;
}

5. 典例

1. 出棧次序

一個棧(無窮大)的進棧序列為1,2,3,…,n,有多少個不同的出棧序列?

  1. 首先,我們設 f(n)=序列個數為n的出棧序列種數。

  2. 同時假定,從開始到棧第一次出到空為止,這段過程中第一個出棧的序數是k。
    特別地,如果棧直到整個過程結束時才空,則k=n。

  3. 首次出空之前第一個出棧的序數k將1 ~ n的序列分成兩個序列:其中一個是1 ~ k-1,序列個數為k-1;另外一個是k+1 ~ n,序列個數是n-k。

  4. 此時,我們若把k視為確定一個序數,那么根據乘法原理,f(n)的問題就等價於——序列個數為k-1的出棧序列種數乘以序列個數為n - k的出棧序列種數(一種遞歸的思想),即選擇k這個序數的f(n)=f(k-1)×f(n-k)。

  5. 而k可以選1到n,所以再根據加法原理,將k取不同值的序列種數相加,得到的總序列種數為:f(n)=f(0)f(n−1)+f(1)f(n−2)+……+f(n−1)f(0)f(n)=f(0)f(n-1)+f(1)f(n-2)+……+f(n-1)f(0)f(n)=f(0)f(n1)+f(1)f(n2)++f(n1)f(0)

  6. 這個公式與卡特蘭數的遞推式一模一樣,即為f(n)=h(n)=1n+1C2nn=C2nn−C2nn+1f(n)=h(n)= \frac{1}{n+1}C_{2n}^n= C_{2n}^n-C_{2n}^{n+1}f(n)=h(n)=n+11C2nn=C2nnC2nn+1。最后,令f(0)=1,f(1)=1。

其解等於第n個Catalan數。

2. 01序列

給出一個n,要求一個長度為2n的01序列,使得序列的任意前綴中1的個數不少於0的個數, 有多少個不同的01序列?
以下為長度為6的序列:
111000 101100 101010 110010 110100

有了上面出棧次序那道題的分析,這道題仿佛似曾相識,其本質就是出棧次序的變式:
1. 因為對於每一個數來說,必須進棧一次、出棧一次。我們把進棧設為狀態‘1’,出棧設為狀態‘0’。n個數的所有狀態對應n個1和n個0組成的2n位二進制數。
2. 由於等待入棧的操作數按照1‥n的順序排列、入棧的操作數b大於等於出棧的操作數a(a≤b),因此輸出序列的總數目=由左而右掃描由n個1和n個0組成的2n位二進制數,1的累計數不小於0的累計數的方案種數。

該題的操作方法:

  1. 在2n位二進制數中填入n個1的方案數為 C2nnC_{2n}^nC2nn,不填1的其余n位自動填0。

  2. 從中減去不符合要求(由左而右掃描,0的累計數大於1的累計數)的方案數即為所求。

  3. 不符合要求的數的特征是由左而右掃描時,必然在某一奇數位2m+1位上首先出現m+1個0的累計數和m個1的累計數,此后的2n-2m-1位上有n-m個 ‘1’ 和n-m-1個 ‘0’

  4. 如若把后面這2n-2m-1位上的0和1互換,使之成為n-m個 ‘0’ 和n-m-1個 ‘1’,結果得1個由n+1個 ‘0’ 和n-1個 ‘1’ 組成的2n位數,即一個不合要求的數對應於一個由n+1個 ‘0’ 和n-1個 ‘1’ 組成的排列。

  5. 反過來,任何一個由n+1個 ‘0’ 和n-1個 ‘1’ 組成的2n位二進制數,由於0的個數多2個,2n為偶數,故必在某一個奇數位上出現0的累計數超過1的累計數。同樣在后面部分0和1互換,使之成為由n個 ‘0’ 和n個 ‘1’ 組成的2n位數,即n+1個 ‘0’ 和n-1個 ‘1’ 組成的2n位數必對應一個不符合要求的數。

  6. 因而不合要求的2n位數與n+1個 ‘0’,n-1個 ‘1’ 組成的排列一一對應

  7. 顯然,不符合要求的方案數為C2nn+1C_{2n}^{n+1}C2nn+1。由此得出輸出序列的總數目f(n)=h(n)=C2nn−C2nn+1=1n+1C2nnf(n)=h(n)=C_{2n}^n-C_{2n}^{n+1}=\frac{1}{n+1}C_{2n}^nf(n)=h(n)=C2nnC2nn+1=n+11C2nn

其解等於第n個Catalan數。

3. ‘+1’‘-1’序列

n個+1和n個-1構成的2n項 a1,a2,⋅⋅⋅,a2na_1,a_2,···,a_{2n}a1,a2,,a2n,其部分和滿足非負性質,即a1+a2+⋅⋅⋅+ak&gt;=0a_1+a_2+···+a_k&gt;=0a1+a2++ak>=0,(k=1,2,···,2n) ,有多少個不同的此序列?

此典例解析與01序列解析一模一樣,即此數列的個數等於第n個Catalan數,此處就不再贅述。

其解等於第n個Catalan數。

4. 括號序列

n對括號有多少種匹配方式?
例如3對括號構成的合法括號序列有C3=5C_3=5C3=5個:((())),()(()),()()(),(())(),(()())。

其本質是“01序列”的變式:
我們把左括號設為狀態‘1’,右括號設為狀態‘0’。n對括號的所有狀態對應n個 ‘1’ 和n個 ‘0’ 組成的2n位二進制數。
由於必須先有左括號,才能匹配右括號,因此輸出正確括號序列的總數目=由左而右掃描由n個 ‘1’ 和n個 ‘0’ 組成的2n位二進制數,1的累計數不小於0的累計數的方案種數。

其解等於第n個Catalan數。

5. 找零問題

2n個人要買票價為五元的電影票,每人只買一張,但是售票員沒有錢找零。其中,n個人持有五元,另外n個人持有十元,問在不發生找零困難的情況下,有多少種排隊方法?

其本質是“01序列”的變式:
我們把持有五元的人設為狀態‘1’,持有十元的人設為狀態‘0’。2n個人的所有狀態對應n個 ‘1’ 和n個 ‘0’ 組成的2n位二進制數。
由於必須先有1個持有五元的人排在1個持有十元的人的前面,才能不發生找零困難,因此不發生找零困難排隊方法的總數目=由左而右掃描由n個 ‘1’ 和n個 ‘0’ 組成的2n位二進制數,1的累計數不小於0的累計數的方案種數。

其解等於第n個Catalan數。

6. 矩陣鏈乘

P=a1×a2×a3×……×an,依據乘法結合律,不改變其順序,只用括號表示成對的乘積,試問有幾種括號化的方案?

思路:(同“出棧次序”思想一致)

1. 可以這樣考慮,首先通過括號化,將P分成兩個部分,然后分別對兩個部分進行括號化。(遞歸分治思想)

2. 比如分成(a1)×(a2×a3…×an),然后再對(a1)和(a2×a3…×an)分別括號化;又如分成(a1×a2)×(a3…×an),然后再對(a1×a2)和(a3…×an)括號化。

3.設n個矩陣的括號化方案的種數為f(n),那么問題的解為
f(n) = f(1)*f(n-1) + f(2)*f(n-2) + f(3)*f(n-3) + f(n-1)*f(1)。f(1)*f(n-1)表示分成(a1)×(a2×a3…×an)兩部分,然后分別括號化。

計算開始幾項,f(1) = 1, f(2) = 1, f(3) = 2, f(4) = 5。結合遞歸式,不難發現f(n)等於h(n-1)。

其解等於第n-1個Catalan數。

7. 二叉樹計數

有n個節點構成的二叉樹(非葉子節點都有2個兒子),共有多少種情形?
有n+1個葉子的二叉樹的個數?
以上兩種問題實際上是同一個問題。
舉例:n=3的情況:
在這里插入圖片描述
思路:(遞歸分治思想)

1. 可以這樣考慮,根肯定會占用一個結點,那么剩余的n-1個結點可以有如下的分配方式,T(0,n−1),T(1,n−2),...,T(n−1,0)T(0, n-1),T(1, n-2),...,T(n-1, 0)T(0,n1),T(1,n2),...,T(n1,0)。設T(i,j)T(i, j)T(i,j)表示根的左子樹含i個結點,右子樹含j個結點。

2.然后對於根結點情況為T(i,j)T(i, j)T(i,j)的左子樹再有如下分配方式:T(0,i−1),T(1,i−2),...,T(i−1,0)T(0, i-1),T(1, i-2),...,T(i-1, 0)T(0,i1),T(1,i2),...,T(i1,0),其右子樹分配方式:T(0,j−1),T(1,j−2),...,T(j−1,0)T(0, j-1),T(1, j-2),...,T(j-1, 0)T(0,j1),T(1,j2),...,T(j1,0)

3.設問題的解為f(n),那么f(n) = f(0)*f(n-1) + f(1)*f(n-2) + …+ f(n-2)*f(1) + f(n-1)*f(0)。假設f(0) = 1,那么f(1) = 1, f(2) = 2, f(3) = 5。結合遞推式,不難發現f(n)等於h(n)。

其解等於第n個Catalan數。

8. 凸多邊形划分

在一個n邊形中,通過不相交於n邊形內部的對角線,把n邊形拆分為若干個三角形,問有多少種拆分方案?
如五邊形有如下5種拆分方案:
在這里插入圖片描述
如六邊形有如下14種拆分方案:
在這里插入圖片描述
思路:(遞歸分治思想)
1.以凸多邊形的一邊為基,設這條邊的2個頂點為A和B。從剩余頂點中選1個,可以將凸多邊形分成三個部分,中間是一個三角形,左右兩邊分別是兩個凸多邊形,然后求解左右兩個凸多邊形。

2.設問題的解f(n),其中n表示頂點數,那么f(n)=f(2)*f(n-1)+f(3)*f(n-2)+……+f(n-2)*f(3)+f(n-1)*f(2)。
其中,f(2)*f(n-1)表示:三個相鄰的頂點構成一個三角形,另外兩個部分的頂點數分別為2(一條直線兩個點)和n-1。
其中,f(3)*f(n-2)表示:將凸多邊形分為三個部分,左右兩邊分別是一個有3個頂點的三角形和一個有n-2個頂點的多邊形。

3.設f(2) = 1,那么f(3) = 1, f(4) = 2, f(5) = 5。結合遞推式,不難發現f(n) 等於h(n-2)。

其解等於第n-2個Catalan數。

9. 圓上n條線段

在圓上選擇2n個點,將這些點成對連接起來使得所得到的n條線段不相交的方法數?

思路:(遞歸分治思想)

1.以其中一個點為基點,編號為 ‘0’ ,然后按順時針方向將其他點依次編號。

2.那么與編號為 ‘0’ 相連的點的編號一定是奇數(否則,這兩個編號間含有奇數個點,勢必會有個點被孤立)。即把編號為 ‘0’ 的點與任意一個編號為奇數的點相連形成一條線段。

3.設選中的 ‘0’ 點為基點A,與它連接的點為B,那么A和B將所有點分成兩個部分,一部分位於A、B的左邊,另一部分位於A、B的右邊。然后分別對這兩部分求解即可。

4.設問題的解f(n),那么f(n) = f(0)*f(n-1) + f(1)*f(n-2) + f(2)*f(n-3) + …+f(n-2)*f(1) + f(n-1)*f(0)。
其中,f(0)*f(n-1)表示編號0的點與編號1的點相連,此時位於它們右邊的點的個數為0(可以連成0條線段),而位於它們左邊的點為2n-2(可以連成n-1條線段)。依次類推。

5.令f(0) = 1, f(1) = 1, f(2) = 2。

6.結合遞歸式,不難發現f(n) 等於h(n)。

其解等於第n個Catalan數。

10. 單調路徑

一位大城市的律師在他住所以北n個街區和以東n個街區處工作,每天他走2n個街區去上班。如果他從不穿越(但可以碰到)從家到辦公室的對角線,那么有多少條可能的道路?

分析:

  1. 一個單調路徑從格點左下角出發,在格點右上角結束,每一步均為向上或向右。X代表“向右”,Y代表“向上”。
  2. 可以發現任意步數的前綴中‘X’的個數不少於‘Y’的個數。
  3. 那么問題便轉換成“01序列”問題的變體“XY序列”問題:給出一個n,要求一個長度為2n的XY序列,使得序列的任意前綴中X的個數不少於Y的個數, 有多少個不同的XY序列?

舉例:n=4的情況:
在這里插入圖片描述

其解等於第n個Catalan數。

11. 填充階梯圖形

用n個長方形填充一個高度為n的階梯狀圖形的方法個數?
舉例:n=4的情況
在這里插入圖片描述
思路:(遞歸分治思想)
1.把高度為n-1的階梯狀圖形,塞進高度為n的階梯狀圖形,把高度為n的階梯狀圖形分為幾個部分。

1.設問題的解f(n),其中n表示高度為n的階梯狀圖形或n個長方形。

2.先來看n=1,易得f(1)=1;同理f(2)=2。其中f(1)不僅表示高度為1的階梯狀圖,而且表示長或寬有一條為1且另一條不等於n的長方形。

3.那n=3呢?其實,n=3即在n=2的階梯圖形上再添加一個高度為1寬度為3(或高度為3寬度為1)的長方形,而且只有兩種添加方法,即要么在左邊添加,要么在上邊添加,這樣才能構成一個高度為n=3的階梯狀圖形。

4.我們設f(0)=1。f(0)代表:一邊為n,一邊為1的長方形。

5.那么f(3)=f(0)*f(2)+f(1)*f(1)+f(2)*f(0)=5。
其中,f(0)*f(2)表示:高度為3的階梯狀圖形含有這兩個部分,一個部分是高度為2的階梯狀圖形,另外一個部分是一邊為3一邊為1的長方形。
其中,f(1)*f(1)表示:高度為3的階梯狀圖形含有這兩個部分,都是高度為1的階梯狀圖形。

6.那么f(4)=f(0)*f(3)+f(1)*f(2)+f(2)*f(1)+f(3)*f(0)=14。
其中,f(0)*f(3)表示:高度為4的階梯狀圖形含有這兩個部分,一個部分是高度為3的階梯狀圖形,另外一個部分是一邊為4一邊為1的長方形。
其中,f(1)*f(2)表示:高度為4的階梯狀圖形含有這兩個部分,一個部分是高度為1的階梯狀圖形或者長或寬有一條為1且另一條不等於n的長方形,另外一個部分是高度為2的階梯狀圖形。

7.結合遞推式,不難發現f(n) 等於h(n)。

其解等於第n個Catalan數。

12. 摞碗問題

飯后,姐姐洗碗,妹妹把姐姐洗過的碗一個一個放進碗櫥摞成一摞。一共有n個不同的碗,洗前也是摞成一摞的,也許因為小妹貪玩而使碗拿進碗櫥不及時,姐姐則把洗過的碗摞在旁邊,問:小妹摞起的碗有多少種可能的方式?

此典例解析是“出棧問題”的變式,其解析一模一樣,即此數列的個數等於第n個Catalan數,此處就不再贅述。

其解等於第n個Catalan數。

13. 汽車胡同加油問題

一個汽車隊在狹窄的路面上行駛,不得超車,但可以進入一個死胡同去加油,然后再插隊行駛,共有n輛汽車,問共有多少種不同的方式使得車隊開出城去?

此典例解析是“出棧問題”的變式,其解析一模一樣,即此數列的個數等於第n個Catalan數,此處就不再贅述。

其解等於第n個Catalan數。

14. 還書借書問題

在圖書館一共2n個人在排隊,n個還《面試寶典》一書,n個在借《面試寶典》一書,圖書館此時沒有了面試寶典了,求他們排隊的總數?

解析:
還書的人總是要大於或等於借書的人,即C2nn−C2nn−1C_{2n}^n-C_{2n}^{n-1}C2nnC2nn1
此典例解析是“找零問題”的變式,即此數列的個數等於第n個Catalan數。

其解等於第n個Catalan數。

15. 高矮排隊問題

2n個高矮不同的人,排成兩排,每排必須是從矮到高排列,而且第二排比對應的第一排的人高,問排列方式有多少種?

其解等於第n個Catalan數。

附:參考博客

https://blog.csdn.net/Hackbuteer1/article/details/7450250
https://blog.csdn.net/doc_sgl/article/details/8880468
https://blog.csdn.net/walk_dog/article/details/79318452
https://blog.csdn.net/u012333003/article/details/23791979
https://blog.csdn.net/hemeinvyiqiluoben/article/details/11320419
https://blog.csdn.net/wu_tongtong/article/details/78161211

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM