【组合数学】生成函数 ( 使用生成函数求解不定方程解个数 )
文章目錄
- 一、使用生成函數求解不定方程解個數
- 1、帶限制條件
- 2、帶系數
參考博客 :
- 【組合數學】生成函數 簡要介紹 ( 生成函數定義 | 牛頓二項式系數 | 常用的生成函數 | 與常數相關 | 與二項式系數相關 | 與多項式系數相關 )
- 【組合數學】生成函數 ( 線性性質 | 乘積性質 )
- 【組合數學】生成函數 ( 移位性質 )
- 【組合數學】生成函數 ( 求和性質 )
- 【組合數學】生成函數 ( 換元性質 | 求導性質 | 積分性質 )
- 【組合數學】生成函數 ( 性質總結 | 重要的生成函數 ) ★
- 【組合數學】生成函數 ( 生成函數示例 | 給定通項公式求生成函數 | 給定生成函數求通項公式 )
- 【組合數學】生成函數 ( 生成函數應用場景 | 使用生成函數求解遞推方程 )
- 【組合數學】生成函數 ( 使用生成函數求解多重集 r 組合數 )
一、使用生成函數求解不定方程解個數
不定方程的解個數 :
x1+x2+?+xk=rx_1 + x_2 + \cdots + x_k = rx1?+x2?+?+xk?=r
xix_ixi? 為自然數 ;
之前通過組合對應的方法 , 已經解決 , 其解個數是 C(k+r?1,r)C(k + r - 1 , r)C(k+r?1,r)
不定方程解的個數 , 推導過程參考 : 【組合數學】排列組合 ( 多重集組合數 | 所有元素重復度大于組合數 | 多重集組合數 推導 1 分割線推導 | 多重集組合數 推導 2 不定方程非負整數解個數推導 ) 二、多重集組合 所有元素重復度大于組合數 推導 2 ( 不定方程非負整數解個數推導 )
上述情況下 , xix_ixi? 的取值都是沒有上限的 , 如果 xix_ixi? 取值受限 , 如 x1x_1x1? 取值必須滿足 2≤x1≤52 \leq x_1 \leq 52≤x1?≤5 條件時 , 就不能使用上述公式進行計算 , 這里需要 使用到生成函數求解 ;
1、帶限制條件
x1+x2+?+xk=rx_1 + x_2 + \cdots + x_k = rx1?+x2?+?+xk?=r
如果 xix_ixi? 取值受到約束 , li≤xi≤nil_i \leq x_i \leq n_ili?≤xi?≤ni? , 則對應的 生成函數項的 yyy 次冪值從 lil_ili? 到 nin_ini? ;
對應的生成函數項是 yli+yli+1+?+yniy^{l_i} + y^{l_i + 1} + \cdots + y^{n_i}yli?+yli?+1+?+yni?
完整的生成函數是 :
G(y)=(yl1+yl1+1+?+yn1)(yl2+yl2+1+?+yn2)?(ylk+ylk+1+?+ynk)G(y) = ( y^{l_1} + y^{l_1+1} + \cdots + y^{n_1} )( y^{l_2} + y^{l_2+1} + \cdots + y^{n_2} ) \cdots ( y^{l_k} + y^{l_k+1} + \cdots + y^{n_k} )G(y)=(yl1?+yl1?+1+?+yn1?)(yl2?+yl2?+1+?+yn2?)?(ylk?+ylk?+1+?+ynk?)
將上述生成函數結果乘出來 , yry^ryr 前的系數 , 就是不定方程 的解的個數 ;
2、帶系數
p1x1+p2x2+?+pkxk=rp_1x_1 + p_2x_2 + \cdots + p_kx_k = rp1?x1?+p2?x2?+?+pk?xk?=r
xi∈Nx_i \in Nxi?∈N , 非負整數解 , 對 xix_ixi? 不設置上限 ;
帶系數的函數非負整數解 , 生成函數的項的基本的 底是 ypiy^{p_i}ypi? , 冪的取值范圍是 0,1,2,?0 , 1, 2, \cdots0,1,2,? ,
每個生成函數項是 (ypi)0+(ypi)1+(ypi)2+(ypi)3+?(y^{p_i})^0 + (y^{p_i})^1 + (y^{p_i})^2 + (y^{p_i})^3 + \cdots(ypi?)0+(ypi?)1+(ypi?)2+(ypi?)3+? ,
化簡后的項是 1+ypi+y2pi+y3pi+?1 +y^{p_i} + y^{2p_i} + y^{3p_i} + \cdots1+ypi?+y2pi?+y3pi?+?
將所有的 kkk 項相乘 , 就是對應的生成函數 :
G(y)=(1+yp1+y2p1+y3p1+?)(1+yp2+y2p2+y3p2+?)?(1+ypk+y2pk+y3pk+?)G(y)=(1+y^{p_1} + y^{2p_1} + y^{3p_1 + \cdots})(1+y^{p_2} + y^{2p_2} + y^{3p_2 + \cdots}) \cdots (1+y^{p_k} + y^{2p_k} + y^{3p_k + \cdots})G(y)=(1+yp1?+y2p1?+y3p1?+?)(1+yp2?+y2p2?+y3p2?+?)?(1+ypk?+y2pk?+y3pk?+?)
該方程的非負整數解個數是 yry^ryr 前的系數 ;
總結
以上是生活随笔為你收集整理的【组合数学】生成函数 ( 使用生成函数求解不定方程解个数 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【组合数学】生成函数 ( 使用生成函数求
- 下一篇: 【组合数学】生成函数 ( 使用生成函数求