目錄函數
注:原創不易,轉載請務必註明原做者和出處,感謝支持!spa
本文內容爲《組合數學》課程的第二部分,遞推關係與母函數。這部分的內容分解圖以下。blog
遞推關係的隱式定義爲對於數列\(\{a_i \vert i \ge 0\}\)和任意天然數\(n\),一個關係到\(a_n\)和某些\(a_i(i < n)\)的方程,稱爲遞推關係,記做:字符串
\[ F(a_0, a_1, a_2, ..., a_n) = 0 \]數學
初始條件it
\[ a_0 = d_0, a_1 = d_1, ..., a_k = d_k \]io
其中初始條件的個數被稱爲遞推關係的階。class
遞推關係的顯式定義爲對於數列\(\{a_i \vert i \ge 0\}\),把\(a_n\)和其前若干項聯繫起來的等式對全部\(n \ge k\)均成立,稱該等式爲\(\{a_i\}\)的遞推關係。記做
\[ a_n = F(a_{n-1}, a_{n-2}, ..., a_{n-k}) \]方法
遞推關係的創建步驟:im
遞推關係的創建實例
實例1:有一個小孩要爬上有\(n\)個臺階的樓梯,他一步能夠爬一個臺階或者兩個臺階。這個小孩爬上這\(n\)個臺階樓梯的不一樣方法的數目記做\(a_n\),則\(a_n\)的遞推關係爲:
\[ a_n = a_{n-1} + a_{n-2} \]
\[ a_1 = 1, a_2 = 2 \]
實例2:在信道上傳輸由\(a, b, c\)三個字母組成的長爲\(n\)的字符串,若字符串中有兩個\(a\)連續出現,則信道就不能傳輸,令\(a_n\)表示信道能夠傳輸的長爲\(n\)的字符串的個數,求\(a_n\)知足條件的遞推關係,則
\[ a_n = 2a_{n-1} + 2a_{n-2} \]
\[ a_1 = 3, a_2 = 8 \]
實例3:把\(n\)個相同的球放入\(k\)個不一樣的盒子中,每一個盒子中的球很多於2個又很少於4個。其不一樣的放法的數目記做\(a_{n,k}\),求\(a_{n,k}\)的遞推關係。則
\[ a_{n, k} = a_{n-2, k-1} + a_{n-3, k-1} + a_{n-4, k-1} \]
\[ a_{2,1} = a_{3, 1} = a_{4, 1} = 1 \]
對於\(n = 0\)或\(n = 1\)或\(n > 4\),有\(a_{n,1} = 0\)
對於\(r\)階遞推關係的通常形式
\[ a_n + c_1(n)a_{n-1} + c_2(n)a_{n-2} + ... + c_r(n)a_{n-r} = e(n) \]
其中,\(n \ge r, c_r \ne 0\)
若\(e(n) = 0\),則稱其爲齊次遞推關係式
若\(e(n) \ne 0\),則稱其爲非齊次遞推關係式
當\(c_i(n) = c_i, (i = 1, 2, ..., r)\),則稱其爲常係數遞推關係式
對於常係數齊次遞推關係式
\[ a_n + c_1a_{n-1} + c_2a_{n-2} + ... + c_ra_{n-r} = 0 \]
其中,\(c_r\)不等於0
其特徵方程爲:
\[ m^r + c_1m^{r-1} + c_2m^{r-2} + ... + c_r = 0 \]
若解得其所有互不相等的特徵根爲\(m_1, m_2, ..., m_i\),而且其重數分別爲\(e_1, e_2, ..., e_i(e_1 + e_2 + ... + e_i = r)\),則遞推關係式對應\(m_i\)部分的通解是:
\[ H_i(n) = (B_0 + B_1 \cdot n + ... + B_{e_i- 1} \cdot n^{e_i-1})m_i^n \]
從而,該常係數齊次遞推關係式爲:
\[ a_n = H_1(n) + H_2(n) + ... + H_i(n) \]
對於非齊次常係數遞推關係式
\[ a_n + c_1a_{n-1} + c_2a_{n-2} + ... + c_ra_{n-r} = f(n) \]
其解爲對應的其次常係數遞推關係式的通解\(\bar{a_n}\)加上該非齊次常係數遞推式的特解\(a_n^*\),即:
\[ a_n = \bar{a_n} + a_n^* \]
而非齊次遞推關係式
\[ a_n + c_1a_{n-1} + c_2a_{n-2} + ... + c_ra_{n-r} = f(n) \]
特解的常見形式有:
對於數列\(a_0, a_1, ..., a_n, ...\)構造形式冪級數
\[ G(x) = a_0 + a_1x + ... + a_nx^n + ... = \sum_{n=0}^{\infty}a_nx^n \]
則稱函數\(G(x)\)是數列\(a_0, a_1, ..., a_n, ...\)的母函數
設數列\(\{a_n\}, \{b_n\}, \{c_n\}\)的母函數分別爲
\[ A(x) = \sum_{n=0}^{\infty}a_nx^n \]
\[ B(x) = \sum_{n=0}^{\infty}b_nx^n \]
\[ C(x) = \sum_{n=0}^{\infty}c_nx^n \]
則有
性質1:若
\[ b_n = \begin{cases} 0 & n < l\\ a_{n-l} & n \ge l \end{cases} \]
則
\(B(x) = x^l A(x)\)
性質2:若\(b_n = a_{n+l}\),則
\[ B(x) = x^{-l}\left[ A(x) - \sum_{k = 0}^{l-1}a_kx^k \right] \]
性質3:若\(a_n = b_n + c_n\),則
\[ A(x) = B(x) + C(x) \]
性質4:若\(b_n = n \cdot a_n\),則\(B(x)= x \cdot A'(x)\)
性質5:若
\[ a_n = b_0c_n + b_1c_{n-1} + ... + b_kc_{n-k} + ... + b_nc_0 = \sum_{k=0}^{n}b_kc_{n-k} \]
則
\[ A(x) = B(x) \cdot C(x) \]
經常使用的母函數的冪級數展開式有:
\[ \frac{1}{1-x} = 1 + x + x^2 + ... + x^n + ... \]
\[ \frac{1-x^{n+1}}{1-x} = 1 + x + x^2 + ... + x^n \]
\[ \frac{1}{1-ax} = 1 + ax + a^2x^2 + ... + a^nx^n + ... \]
\[ \frac{1}{1-x^r} = 1 + x^r + x^2r + ... + x^{nr} + ... \]
\[ \frac{1}{(1-x)^n} = 1 + C(n, 1)x + C(n+1, 2)x^2 + ... + C(n+k-1, k)x^n + ... \]
\[ \frac{1}{(1-x)^2} = 1 + 2x + 3x^2 + ... + (n+1)x^n + ... \]
\[ \frac{1}{1+x} = 1 - x + x^2 + ... +(-1)^n x^n + ... \]
\[ \frac{1}{(1+x)^n} = 1 - C(n, 1)x + C(n+1, 2)x^2 + ... +(-1)^k C(n+k-1, k)x^k + ... \]
\[ e^x = 1 + \frac{x}{1!} + \frac{x^2}{2!} + ... + \frac{x^n}{n!} + ... \]
\[ e^{-x} = 1 - \frac{x}{1!} + \frac{x^2}{2!} + ... + (-1)^n\frac{x^n}{n!} + ... \]
用母函數來求解遞推關係的步驟以下:
好比,有遞推關係\(a_n - 2a_{n-1} = 1, a_0 = 0\),求\(a_n\)。解題過程以下:
\[ \begin{equation} \begin{split} a_n - 2a_{n-1} = 1\\ \Rightarrow a_nx^n - 2xa_{n-1}x^{n-1} = x^n\\ \Rightarrow \sum_{n=1}^{\infty}a_nx^n - 2x \sum_{n=1}^{\infty}a_{n-1}x^{n-1} = \sum_{n=1}^{\infty}x^n\\ \Rightarrow (A(x) - a_0) - 2xA(x) = \frac{1}{1-x} - 1\\ \Rightarrow A(x) = \frac{x}{(1-x)(1-2x)}\\ \Rightarrow A(x) = \frac{-1}{1-x} + \frac{1}{1-2x}\\ \end{split} \end{equation} \]
因此,易知解爲\(a_n = 2^n - 1\)
\(\{M_1 \cdot a_1, M_2 \cdot a_2, ..., M_k \cdot a_k\}\)的\(r\)可重組合的母函數爲
\[ G(x) = (x^0 + x^1 + ... +x^{M_1})(x^0 + x^1 + ... +x^{M_2})...(x^0 + x^1 + ... +x^{M_k}) \]
則\(x^r\)前的係數就是所求\(r\)可重組合數
當\(M_i = 1\)時,\(\{a_1, a_2, ..., a_k\}\)的\(r\)無重組合數的母函數爲
\[ G(x) = (x^0 + x^1)^k = (1+x)^k = \sum_{r=0}^{k}C(k, r)x^r \]
一樣,\(x^r\)前的係數就是所求\(r\)無重組合數
當\(M_i = \infty\)時,\(\{\infty \cdot a_1, \infty \cdot a_2, ..., \infty \cdot a_k\}\)的\(r\)可重組合數的母函數爲
\[ G(x) = (x^0 + x^1 + ... + x^n + ...)^k = \frac{1}{(1-x)^k} = \sum_{r=0}^{\infty}C(k+r-1, r)x^r \]
一樣,\(x^r\)前的係數就是所求
用母函數求解組合數應用舉例。
把4個相同的球放入5個不一樣的盒子裏,要求第1、2、三每盒最多不超過1個,第4、五每盒最多不超過2個,求方法數的母函數
\[ G(x) = (1+x)^3 \cdot (1 + x + x^2)^2 \]
展開式中\(x^4\)的係數爲所求
對於序列\(a_0, a_1, ..., a_n, ...\),函數
\[ G_e(x) = a_0 + a_1 \frac{x}{1!} + ... + a_n \frac{x^n}{n!} + ... \]
稱爲序列\(a_0, a_1, ..., a_n, ...\)的指數型母函數。
與上述的使用母函數求解組合數相似,用母函數求解排列數有以下定理:
令\(S=\{M_1 \cdot a_1, M_2 \cdot a_2, ......, M_k \cdot a_k\}\),\(h_n\)是\(S\)的\(n-\)排列數,則序列\(h_0, h_1, ......, h_n, ......\)的指數型母函數\(G_e(x)\)爲
\[ \big(1 + \frac{x}{1!} + ... + \frac{x^{M_1}}{M_1!}\big)\big(1 + \frac{x}{1!} + ... + \frac{x^{M_2}}{M_2!}\big)...\big(1 + \frac{x}{1!} + ... + \frac{x^{M_k}}{M_k!}\big) \]
所以,當\(n=M_1 + M_2 + ... +M_k\)時,則\(x^n\)的係數爲全排列數
\[ \tbinom{n}{M_1M_2...M_k}\frac{x^n}{n!} \]
將\(n\)個物體所有分配到\(m\)個位置上的問題,根據物體和位置是否有區別可分爲:
對於整數的有序拆分,若不容許有空位出現,則拆分數\(C_m(n)\)爲
\[ C_m(n) = \tbinom{n-1}{m-1} \]
若容許出現空位,則拆分數\(B_m(n)\)爲
\[ B_m(n) = \tbinom{n+m-1}{n} = \tbinom{n+m-1}{m-1} \]
對於整數的無序拆分,若容許有空位,則分配數爲下列母函數展開式中\(x^n\)的係數
\[ G(x) = \frac{1}{(1-x)(1-x^2)...(1-x^m)} \]
若不容許有空位,則分配數爲下列母函數展開式中\(x^n\)的係數
\[ G(x) = \frac{x^m}{(1-x)(1-x^2)...(1-x^m)} \]
對於集合的有序劃分,若容許有空位,則分配方案數爲\(m^n\)。
若不容許有空位,則分配方案數爲
\[ \sum_{k=0}^n(-1)^k\tbinom{n}{k}(n-k)^m \]
對於集合的無序劃分,若容許有空位存在,則分配方案數爲
\[ \sum_{i=1}^{min(n,m)}\frac{1}{i!}\sum_{k=0}^i(-1)^k\tbinom{i}{k}(i-k)^n \]
若不容許空位的存在,則分配方案數爲
\[ \frac{1}{m!}\sum_{k=0}^m(-1)^k\tbinom{m}{k}(m-k)^n \]