【组合数学】生成函数 ( 生成函数应用场景 | 使用生成函数求解递推方程 )
文章目錄
- 一、生成函數應用場景
- 二、使用生成函數求解遞推方程
參考博客 :
- 【組合數學】生成函數 簡要介紹 ( 生成函數定義 | 牛頓二項式系數 | 常用的生成函數 | 與常數相關 | 與二項式系數相關 | 與多項式系數相關 )
- 【組合數學】生成函數 ( 線性性質 | 乘積性質 )
- 【組合數學】生成函數 ( 移位性質 )
- 【組合數學】生成函數 ( 求和性質 )
- 【組合數學】生成函數 ( 換元性質 | 求導性質 | 積分性質 )
- 【組合數學】生成函數 ( 性質總結 | 重要的生成函數 ) ★
- 【組合數學】生成函數 ( 生成函數示例 | 給定通項公式求生成函數 | 給定生成函數求通項公式 )
一、生成函數應用場景
生成函數應用場景 :
- 求解遞推方程
- 多重集 rrr 組合計數
- 不定方程解個數
- 整數拆分
多重集 rrr 組合計數 , 之前 只能計數特殊情況下的組合數 , 也就是選取數 rrr 小于多重集每一項的重復度 , 才有 組合數 N=C(k+r?1,r)N= C(k + r - 1, r)N=C(k+r?1,r) , 如果 rrr 大于重復度 , 就需要使用生成函數進行求解 ;
不定方程的解個數 , 之前只能求解 沒有約束的情況 , 如果對變量有約束 , 如 x1x_1x1? 只能在某個區間取值 , 這種情況下 , 就必須使用生成函數進行求解 ;
整數拆分 , 將一個正數拆分多若干整數之和 , 拆分方案個數 , 也可以通過生成函數進行計算 ;
回顧多重集排列組合 :
- 可重復的元素 , 有序的選取 , 對應 多重集的排列 ; 全排列=n!n1!n2!?nk!全排列 = \cfrac{n!}{n_1! n_2! \cdots n_k!}全排列=n1?!n2?!?nk?!n!? , 非全排列 kr,r≤nik^r , \ \ r\leq n_ikr,??r≤ni?
- 可重復的元素 , 無序的選取 , 對應 多重集的組合 ; N=C(k+r?1,r)N= C(k + r - 1, r)N=C(k+r?1,r)
二、使用生成函數求解遞推方程
遞推方程 : an?5an?1+6an?2=0a_n - 5a_{n-1} + 6a_{n-2} = 0an??5an?1?+6an?2?=0
初值 : a0=1,a1=2a_0 = 1, a_1 = 2a0?=1,a1?=2
{an}\{a_n\}{an?} 數列為 {a0,a1,a2,a3,?,an,?}\{ a_0 , a_1, a_2, a_3 , \cdots , a_n , \cdots\}{a0?,a1?,a2?,a3?,?,an?,?}
ana_nan?對應的生成函數是 G(x)=a0+a1x+a2x2+a3x3+?G(x) = a_0 + a_1 x + a_2 x^2 + a_3x^3 + \cdotsG(x)=a0?+a1?x+a2?x2+a3?x3+?
根據遞推方程 , 同時為了使得后面的項可以約掉 , 使用 ?5x-5x?5x 乘以 G(x)G(x)G(x) 生成函數 , 使用 +6x2+6x^2+6x2 乘以 G(x)G(x)G(x) , 得到如下三個式子 ,
?5x-5x?5x 乘以 G(x)G(x)G(x) 得到的第一項就是 xxx 的一次方項 , 將該項對應到 G(x)G(x)G(x) 中的 xxx 一次方項下面 ,
+6x2+6x^2+6x2 乘以 G(x)G(x)G(x) 得到的第一項就是 xxx 的二次方項 , 將該項對應到 G(x)G(x)G(x) 中的 xxx 二次方項下面 ;
G(x)=a0+a1x+a2x2+a3x3+?\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ G(x) = a_0 + a_1 x + a_2 x^2 + a_3x^3 + \cdots????????????????????????G(x)=a0?+a1?x+a2?x2+a3?x3+?
?5xG(x)=?5a0x?5a1x2?5a2x3??\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ -5x \ G(x) = \ \ \ \ -5a_0x - 5a_1x^2 - 5a_2x^3 - \cdots?????????????????5x?G(x)=?????5a0?x?5a1?x2?5a2?x3??
6x2G(x)=+6a0x2+6ax3+?\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 6x^2 \,G(x) = \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ + \,6a_0x^2 + 6a_x^3 + \cdots??????????????????6x2G(x)=????????????????+6a0?x2+6ax3?+?
(1?5x+6x2)G(x)=a0+(a1?5a0)x(1-5x+6x^2)G(x) =a_0 + (a_1 - 5a_0)x(1?5x+6x2)G(x)=a0?+(a1??5a0?)x
上述橫線下的式子是 橫線上面 三個式子相加的結果 ;
觀察上述右側 第三列 , 圖中紅框部分 ;
上述冪次對齊后 , 出現的等號右側的第三列 +a2x2?5a1x2+6a0x2+ a_2 x^2 -5a_1x^2 + \,6a_0x^2+a2?x2?5a1?x2+6a0?x2 , 將其中 x2x^2x2 提取出來得到 (a2?5a1+6a0)x2(a_2 - 5a_1 + 6a_0)x^2(a2??5a1?+6a0?)x2 , 正好對應遞推方程 an?5an?1+6an?2=0a_n - 5a_{n-1} + 6a_{n-2} = 0an??5an?1?+6an?2?=0 ,
因此有 a2?5a1+6a0=0a_2 - 5a_1 + 6a_0 = 0a2??5a1?+6a0?=0 , 進而可以得到 (a2?5a1+6a0)x2=0(a_2 - 5a_1 + 6a_0)x^2 = 0(a2??5a1?+6a0?)x2=0
由此可以看出 , 如果三個式子全部相加 , 下圖 右側藍色矩形框內 , 全部都是 000 ;
目前右側只剩下 a0+a1x?5a0xa_0 + a_1x -5a_0xa0?+a1?x?5a0?x 三項 ; 其中的 a0=1,a1=?2a_0 = 1 , a_1 = -2a0?=1,a1?=?2 是初值 ;
最終等式右側是 : 1?2x?5x=1?7x1 - 2x - 5x = 1-7x1?2x?5x=1?7x
將上述式子代入到 (1?5x+6x2)G(x)=a0+(a1?5a0)x(1-5x+6x^2)G(x) =a_0 + (a_1 - 5a_0)x(1?5x+6x2)G(x)=a0?+(a1??5a0?)x 中 , 使用 1?2x?5x=1?7x1 - 2x - 5x = 1-7x1?2x?5x=1?7x 替換等式右側的式子 , 得到 :
(1?5x+6x2)G(x)=1?7x(1-5x+6x^2)G(x) =1-7x(1?5x+6x2)G(x)=1?7x
G(x)=1?7x1?5x+6x2G(x) = \cfrac{1-7x}{1-5x+6x^2}G(x)=1?5x+6x21?7x?
使用 給定 生成函數 , 求對應的級數 的 方法 , 將上述式子展開 , 參考 【組合數學】生成函數 ( 生成函數示例 | 給定通項公式求生成函數 | 給定生成函數求通項公式 ) 二、給定生成函數求級數 方法 ,
先將分母進行因式分解 , 然后設置兩個待定系數 , 通分后 , 根據 xxx 項系數寫出方程組 , 最終解該方程組 , 最終可以得到 :
G(x)=1?7x1?5x+6x2=51?2x?41?3xG(x) = \cfrac{1-7x}{1-5x+6x^2} = \cfrac{5}{1-2x} - \cfrac{4}{1-3x}G(x)=1?5x+6x21?7x?=1?2x5??1?3x4?
51?2x\cfrac{5}{1-2x}1?2x5? 對應的級數是 : ∑n=0∞5(2x)n=5∑n=0∞2nxn\sum\limits_{n=0}^\infty 5 (2x)^n = 5\sum\limits_{n=0}^\infty 2^n x^nn=0∑∞?5(2x)n=5n=0∑∞?2nxn
41?3x\cfrac{4}{1-3x}1?3x4? 對應的級數是 : ∑n=0∞(?4)(3x)n=?4∑n=0∞3nxn\sum\limits_{n=0}^\infty (-4) (3x)^n = -4\sum\limits_{n=0}^\infty 3^n x^nn=0∑∞?(?4)(3x)n=?4n=0∑∞?3nxn
最終生成函數的級數形式為 : G(x)=5∑n=0∞2nxn?4∑n=0∞3nxnG(x) = 5\sum\limits_{n=0}^\infty 2^n x^n - 4\sum\limits_{n=0}^\infty 3^n x^nG(x)=5n=0∑∞?2nxn?4n=0∑∞?3nxn
遞推方程的通解 : an=5?2n?4?3na_n = 5 \cdot 2^n - 4 \cdot 3^nan?=5?2n?4?3n
基本思路 : 有原來的遞推方程 , 導出關于生成函數的遞推方程 ;
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的【组合数学】生成函数 ( 生成函数应用场景 | 使用生成函数求解递推方程 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【组合数学】生成函数 ( 生成函数示例
- 下一篇: 【组合数学】生成函数 ( 使用生成函数求