4 3 買票找零問題

2022-06-07 00:54:12 字數 2383 閱讀 8686

answer

\[res = c_^n - c_^ = \fracc_^n

\]

先介紹卡特蘭數:

給出乙個n,要求乙個長度為2n的0,1序列,使得序列的任意字首中1的個數不少於0的個數

證明:

考慮乙個含有n個1,n個0的2n位二進位制數字,掃瞄到第2m+1位上的時候有m+1個0和m個1,則後面0,1 的個數分別為:有n-m個1和n-m-1個0,

將2m+2以及之後的0變成1,1變成0,則對應乙個n+1個0和n-1個1的二進位制數,不符合要求

從而\(c_n = c_n = c_^n - c_^ = \fracc_^n\)

左括號相當於1,右括號相當於0,本質上就是卡特蘭數

我們從節點1開始考慮,要想分割成為三角形區域,節點1不能和他相鄰的節點相連,所以節點1可以連線3,4...n-1

我們假設節點1連線i,則這條線將多邊形區域分割成為i凸多邊形和n+2-i凸多邊形,即對於節點1,\(f_1(n) = f(3)*f(n+2-3) + ... + f(n-1)f(3)\)

總的分割方法是\(n*f_1(n)\),其中一半是重複情況

\[f(n) = \sum_^f(i)*f(n+2-i)*\frac

\]符合卡特蘭數

類似於拓展2

n = 0 , f(0) = 1

n = 1 , f(1) = 1

n = 2 , f(2) = 4

\[f(n) = f(0)*f(n-1) + f(1)*f(n-2) + ... + f(i)*f(n-i-1) + ... + f(n-1) * f(0)

\]其中\(f(i)*f(n-i-1)表示左子樹有i個節點右子樹有n-i-1個節點時候可構造的數目\)

符合卡特蘭數

// 4.3 買票找零

// 卡特蘭數

class test^n - c_^ = \fracc_^n$$

*//**

先介紹卡特蘭數:

catalan 滿足遞迴式:$h(n) = h(0) * h(n-1) + h(1) * h(n-2) + ...+h(n-1) * h(0)$

catalan 另類遞推式:$h(n) = \frac$

遞推關係的解為:$c_n = c_^n - c_^ = \fracc_^n$

卡特蘭數的證明:

給出乙個n,要求乙個長度為2n的0,1序列,使得序列的任意字首中1的個數不少於0的個數

證明:考慮乙個含有n個1,n個0的2n位二進位制數字,掃瞄到第2m+1位上的時候有m+1個0和m個1,則後面0,1 的個數分別為:有n-m個1和n-m-1個0,

將2m+2以及之後的0變成1,1變成0,則對應乙個n+1個0和n-1個1的二進位制數,不符合要求

從而$c_n = c_n = c_^n - c_^ = \fracc_^n$

*//**

拓展問題:

1 矩陣連乘問題:$p = a_1 * a_2 * a_3 * ... * a_n$依據乘法結合律,不改變矩陣的相互順序,只用括號表示成對的乘積,試問有幾種括號化的方案?

左括號相當於1,右括號相當於0,本質上就是卡特蘭數

2 將多邊形劃分稱為三角形問題。求乙個凸多邊形區域劃分稱為三角形區域的方法數。

我們從節點1開始考慮,要想分割成為三角形區域,節點1不能和他相鄰的節點相連,所以節點1可以連線3,4...n-1

我們假設節點1連線i,則這條線將多邊形區域分割成為i凸多邊形和n+2-i凸多邊形,即對於節點1,$f_1(n) = f(3)*f(n+2-3) + ... + f(n-1)f(3)$

總的分割方法是$n*f_1(n)$,其中一半是重複情況

$$f(n) = \sum_^f(i)*f(n+2-i)*\frac$$

3 某乙個城市的某個居民,每一天他需要走2n個街區去上班(他在其住所北n個街區和以東n個街區工作)。如果他從不穿越從家到公司的對角線,那麼有多少條可能的道路?

符合卡特蘭數

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

類似於拓展2

5 n個節點可以構造出多少不同的二叉樹?

n = 0 , f(0) = 1

n = 1 , f(1) = 1

n = 2 , f(2) = 4

$$f(n) = f(0)*f(n-1) + f(1)*f(n-2) + ... + f(i)*f(n-i-1) + ... + f(n-1) * f(0)$$

其中$f(i)*f(n-i-1)表示左子樹有i個節點右子樹有n-i-1個節點時候可構造的數目$

符合卡特蘭數*/}

}

買票找零問題

問題描述 一場激烈足球賽即將開始,售票員緊張地賣票著 每張球票50元,現在有2n 1 n 18 個球迷排隊購票,其中n個手持50元鈔票,另外n個手持100元鈔票。假設開始售票時售票處沒有零錢可以找零。問這2n個人有多少種排隊方式,不至使售票處出現找不出零的局面?例如當n 3時,共6人,3人持50元,...

動態規劃 買票找零

水題一道,但是感覺起來挺有意思的。一場激烈足球賽即將開始,售票員緊張地賣票著 每張球票50 元,現在有2n 1 n 18 個球迷排隊購票,其中 n個手持 50元鈔票,另外 n個手持 100元鈔票。假設開始售票時售票處沒有零錢可以找零。問這2n 個人有多少種排隊方式,不至使售票處出現找不出零的局面?例...

程式設計之美 買票找零

一,問題 n個拿著1元,n個人拿著2元去買票。票價一元,且售票元只能用n個人購票的一元給2元的找零。問有幾種排列方法 分析 卡特蘭數方法 遞推公式 f 2 n f 0 f 2 n 1 f 1 f 2 n 2 f 2 n 1 f 0 f n f 0 f n 1 f 1 f n 2 f n 1 f 0 ...