[數學]卡特蘭數


前言

咕比賽寫博客的我。哭哭。
本篇文章的剩余部分中,我們定義\(C(n)\)為卡特蘭數的第\(n\)

定義

翻閱了一堆文章,也沒找到真正的定義,暫且拿這個充當定義:
\(C(n)\)表示,從原點出發,每次向x或y軸正方向移動1單位,到達點(n,n),且在移動過程中不越過第一象限平分線的移動方案數。

通項公式

我們記\(C(n)\)為卡特蘭數的第\(n\)

\[C(n)= \left( \begin{matrix}2n \\ n\end{matrix} \right) - \left( \begin{matrix}2n \\ n + 1\end{matrix} \right) \]

證明


首先根據組合數學,我們知道如果不考慮第一象限平分線的限制,方案數為\(\left(\begin{matrix}2n \\ n\end{matrix}\right)\)
注意到任何一種非法的方案,都至少有一個點\(p\)碰到了直線\(y=x+1\),那么我們將這條路徑在\(p\)點以上的在直線\(y=x+1\)以下的部分沿直線\(y=x+1\)鏡像到直線\(y=x+1\)上。
看圖理解:上圖中的綠線為\(y=x+1\),紅線為原非法路徑在\(p\)上的部分,藍線為鏡像后的結果。
我們會發現任何一種非法方案都可以變換成(0,0)到(n-1,n+1)的一條路徑,且存在一一映射關系,所以總方案數為:\(\left(\begin{matrix}2n \\ n\end{matrix}\right)-\left(\begin{matrix}2n \\ n+1\end{matrix}\right)\)

化簡

\[C(n)=\left(\begin{matrix}2n \\ n\end{matrix}\right)-\left(\begin{matrix}2n \\ n+1\end{matrix}\right) \]

\[=\frac{(2n)!}{n!n!}-\frac{(2n)!}{(n+1)!(n-1)!} \]

\[=\frac{1}{n+1}(\frac{(2n)!(n+1)}{n!n!}-\frac{(2n)!}{n!(n-1)!}) \]

\[=\frac{1}{n+1}(\frac{(2n)!(n+1)}{n!n!}-\frac{(2n)!\times n}{n!n!}) \]

\[=\frac{1}{n+1}\frac{(2n)!(n+1)-(2n)! \times n}{n!n!} \]

\[=\frac{1}{n+1}\frac{(2n)!}{n!n!} \]

\[=\frac{1}{n+1}\left(\begin{matrix}2n \\ n\end{matrix}\right) \]

變形

\[C(n)=\frac{1}{n+1}\sum_{i=0}^n\left(\begin{matrix}n \\ i \end{matrix}\right)^2 \]

遞推

\[C(n+1)=\sum_{i=0}^nC(i)C(n-i),\ C(0)=1 \]

\[C(n+1)=\frac{2(2n+1)}{n+2}C(n),\ C(0)=1 \]

應用

  1. n對括號的合法配對方案書
  2. n個節點的二叉樹的形態數
  3. n+1個葉子(n個非葉節點)的滿二叉樹的形態數, 走到左兒子+1,走到 右兒子-1,類似於括號匹配(大致同2)
  4. n個數入棧后出棧的排列總數
  5. 對凸n+2邊形進行不同的三角形分割的方案數(分割線斷點僅為頂點,且分割線僅在頂點上相交)
  6. n層的階梯切割為n個矩形的切法數

卡特蘭數與OI初賽

首先背誦上述應用場景,然后記憶卡特蘭數的前幾項:1,1,2,5,14,42,132。

拓展

\(n+m\)個人排隊買票,並且滿足\(n \geq m\),票價為50元,其中n個人有且僅有一張\(50\)元鈔票,m個人有且僅有一張\(100\)元鈔票,初始時候售票窗口沒有錢,問有多少種排隊的情況數能夠讓大家都買到票。
如果\(n=m\)可以直接用Catalan數解決,也就是將有50元的人看成是上述應用中的左括號,有100元的人看成是右括號。
對與\(n>m\)的情況,假設所有人都可以買到票的情況數是\(A_{n,m}\),不能讓每個人都買到的情況數是\(B_{n,m}\),設最早買不到票的人為\(p\),他一定手持100元且售票處沒有50元,那么這時將前p個人的錢從50元變成100元,從100元變成50元(不考慮順序,所以沒有影響),這時候就有\(n+1\)個人有50元,\(m-1\)個有100元的,所以就得到\(B_{n,m}=\left(\begin{matrix}n+m \\ n+1\end{matrix}\right)\),那么\(A_{n,m}=\left(\begin{matrix}n+m \\ n\end{matrix}\right)-\left(\begin{matrix}n+m \\ n+1\end{matrix}\right)\)
這正是應用了上文證明的"翻折"思想。


免責聲明!

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



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