1. 程式人生 > >卡特蘭數在多種問題下的應用 組合數學-Catalan數

卡特蘭數在多種問題下的應用 組合數學-Catalan數




4)排隊順序問題


1】長度為2n的Dyck words有多少種?(Dyck words是由n個X和n個Y組成的字串,其有一個特點:從左往右,對X和Y分別計數,Y的個數始終不大於X的個數。)

轉化思路:可以把X看作入棧,Y看作出棧,Y的個數始終不大於X的個數這一性質正好和空棧無法再出棧相一致,所以Dyck words就等價為出入棧序列。


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

轉化思路:2n個人先從矮到高排序,然後挨個被選到第一排或者第二排,如果要滿足題意,當且僅當每挑選完一次之後,第二排中的人數不多於第一排中的人數。


1.2】在一個2*n的格子中填入1到2n這些數值,使得每個格子內的數值都比其右邊和上邊的所有數值都小,有多少種填法?



1.3】有2n個人排成一行進入劇場。入場費5元。其中n個人只有5元鈔票,n個人只有10元鈔票(必須找零),劇院無其它鈔票,問有多少種買票順序能讓每個人都順利買票?

轉化思路:每來一個5元的人,就能滿足1個10元的人,所以始終要滿足10元的人數不多於5元的人數。




5)正方形網格路徑問題


1】對於一個n*n的正方形網格,每次我們能向右或者向上移動一格,求從左下角到右上角的所有在副對角線右下方的路徑總數。

轉化思路:把一條水平邊標記為+1,垂直邊標記為-1,那麼就組成一個n個+1和n個-1的序列,我們所要保證的是前k步中水平邊的個數不小於垂直邊的個數。


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





6)將多邊形劃分問題


1】n+2條邊的凸多邊形能劃分成n個三角形,有多少種劃分方法?

轉化思路:首先知道需要加n-1條弦。這裡以邊為研究物件,一共有n+2條邊。加弦的目的是把兩個挨著的邊括起來。那麼這就成了在兩個邊兩側加括號了,n+2條邊要加n對括號。


2】n層階梯劃分為n個矩形,一共有多少種分法?


2】圓桌周圍有2n個人,他們兩兩握手,但沒有交叉的方案數。(每個人最多握一次手)

轉化思路:握手行為是由2個人共同完成的,設定這一行為有主動方(入棧)和被動方(出棧),假設握手行為是根據座次號(1-2n)按時間順序發生的,如果那人是主動方,他會提出握手要求(+1);如果那人是被動方,他會接受握手要求(-1)。因為握手不能交叉,所以這就成了出入棧序列。


    從沒有交叉的圖形角度來看,一旦確定了某個握手行為,握手的雙方就劃分了兩個隔離的部分,這兩個部分內部再進行握手。


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