組合數學-Catalan Numbers

Catalan Numbers: 卡特蘭數

Catalan 數 C n C_{n} Cn 源於數學家 Catalan 解決凸 n + 2 n+2 n+2 邊形的剖分問題時所得到的數列. Catalan 問題的解決過程中, 大量地采用了映射 (Mapping) 方法. 學習和熟悉 Catalan 問題的一般解法與其變形問題對組合數學的學習與 “組合思維” 的養成有顯著的正面作用.



Catalan 問題描述

Catalan 問題是對凸多邊形的劃分問題:

求凸多 n + 2 n + 2 n+2 邊形被它的 n − 1 n-1 n1 條對角綫分割為互不重曡的三角形的分法總數.

爲了解決這一問題, 我們需要先不加證明地引入以下兩個引理:

  1. (括號表達式問題)

    n n n 對括號形成的合法括號表達式個數爲 C n C_{n} Cn.

  2. (多數連乘問題)

    n + 1 n+1 n+1 個數連乘, 不同的乘法順序數為 C n C_{n} Cn.

下面, 我們著手解決 Catalan 問題:

我們用 1 , 2 , ⋯   , n + 2 1,2,\cdots,n+2 1,2,,n+2 順序標記凸 n + 2 n+2 n+2 邊形的邊: 按逆時針方向, 從標爲 1 1 1 的邊的起點開始, 按照 “未標記的對角綫均爲向外方向” 這一原則標記分割多邊形的對角綫的 “方向”.

隨後, 從 1 1 1 號邊的起點開始, 逆時針重新讀圖, 將 “出” 方向讀為 “(”, “入” 方向讀為 “)”.
這樣, 我們即得到了一個凸多邊形剖分方式與數字連乘順序的一一對應. 由上述兩個引理可得: 所求的剖分方式總數為 C n C_{n} Cn. ■ \blacksquare


Catalan 數問題其一: 進出棧問題

進出棧問題是一個 Catalan 問題的變形, 由它的解決過程可以相應地得到上述兩個引理的證明.

棧 (stack), 是數據結構的一種, 就是指數據暫時存儲的地方. 它是一種 “運算受限” 的綫性表: 我們只被允許在這種綫性表的 表尾 進行數據的插入和刪除操作.

基於上述定義和知識, 我們提出問題: 若一個足夠大的棧, 其進棧序列為 1 , 2 , 3 , ⋯   , n 1,2,3,\cdots,n 1,2,3,,n, 它有多少個不同的出棧序列?


[解]

進棧順序和出棧順序顯然不是一一對應的. 但是, “進出棧順序” 和 “出棧順序” 是一一對應的. 下面規定, 用 “+1” 表示進棧, “-1” 表示出棧.

對於 n n n 個數的序列, 其總的 “進出棧順序數” 并不是 ( 2 n n ) \binom {2n}{n} (n2n), 因爲出棧操作可被執行的前提是有進棧操作. 因此, 我們要求: 每個代表進, 出棧操作的排列, 其任意前 n n n 項和均不可爲負數.

現在, 我們考慮一個由所有無效排列所組成的集合 M \mathbb{M} M. 取 M \mathbb{M} M 中的一個元素 a i \mathbb{a_{i}} ai, 考慮其中首次發現排列無效, 也就是首次發現該排列的前若干項和為 − 1 -1 1 時, 此時將 “使前若干項和為 − 1 -1 1 的這一項” 與 “它之前的所有項” 全部取相反數, 那麽我們得到了一個包含 n − 1 n-1 n1 − 1 -1 1, n + 1 n+1 n+1 + 1 +1 +1 的排列.

設所有這樣的排列構成集合 N \mathbb{N} N. 顯見: 映射 M ↣ N \mathbb{M}\rightarrowtail \mathbb{N} MN 是一個雙射, 無效排列共有 ( 2 n n − 1 ) \binom {2n}{n-1} (n12n) 個.

綜上, 所有的不同出棧序列總數為
( 2 n n ) − ( 2 n n − 1 ) = 1 n + 1 ( 2 n n ) = C n . \binom{2n}{n} - \binom{2n}{n-1} = \frac{1}{n+1}\binom{2n}{n} = C_{n}. (n2n)(n12n)=n+11(n2n)=Cn.


二叉樹問題

二叉樹問題的要求是求出具有 n + 1 n+1 n+1 個葉子的滿二叉樹的個數. 它是進出棧問題的簡單變形, 求解過程和進出棧問題非常相似.

[解]

以 “向左優先” 的原則, 由二叉樹頂部的根節點開始遍歷二叉樹. 向左遍歷記爲 “+1”, 向右記爲 “-1”. 因此, 相應地我們可用 “+1” 和 “-1” 組成的數組表示每一棵二叉樹. 由 Catalan 數的定義即得: 符合條件的二叉樹的個數爲 C n C_{n} Cn.


兩個引理的證明

上文中, 我們得到了 進出棧問題 的解答. 下面我們以它爲基礎, 對 Catalan 問題解決過程中所給出的兩個引理給出證明.

引理1證明:

[證明]

將每一個括號表達式中的左, 右括號分別視爲 “+1” 和 “-1”. 聯係進出棧問題的解決過程, 原命題得證. ■ \blacksquare

引理2證明:

[證明]

因爲括號表達式本質上是對數字連乘順序的規定, 因此由 n n n 對括號組成的合法括號表達式的個數就是 n + 1 n+1 n+1 個數連乘的不同方式. 因此, 所要求的順序數也是 C n C_{n} Cn. ■ \blacksquare


Catalan 數問題其二: 電影購票問題和 Catalan 問題的幾何直觀

假設某影院的電影票單價 50 50 50 元, 現有 m + n m + n m+n 人排隊購票. 其中, m m m 人只有百元紙幣, n n n 人只有 50 50 50 元紙幣, 售票處沒有用於找零的現鈔. 問: 有多少種方法可將這 m + n m+n m+n 人排成一列, 使他們可以按照順序購票而無需等待售票處找出零錢?

在這一問題中, 我們將引入一個幾何模型來解決這個問題. 該幾何模型也可作爲進出棧問題的集合解釋.

[解]

構建一個 m ⋅ n m \cdot n mn 網格, 問題等價於規定從左下角起始, 每次向右 (表示購票人只有50元) 或向上 (購票人只有100元) 移動一格, 最後到達右上角 ( m , n ) (m,n) (m,n) 的路徑條數.

我們設 M \mathbb{M} M 為: 穿過直綫 y = x y = x y=x 的, 從左下角到右上角的路徑所組成的集合. 與解決進出棧問題相同, 利用路徑關於直綫 y = x y = x y=x 的對稱性, 可以定義集合 N \mathbb{N} N, 並建立雙射關係, 并得出:
c a r d ( M ) = c a r d ( N ) = ( m + n n − 1 ) . card(\mathbb{M}) = card(\mathbb{N}) = \binom{m+n}{n-1}. card(M)=card(N)=(n1m+n).
於是, 所求排列數目為
( m + n n ) − ( m + n n − 1 ) . \binom{m+n}{n} - \binom{m+n}{n-1}. (nm+n)(n1m+n).
特別地, 儅 m = n m = n m=n 時, 即得 Catalan 數.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值