【组合数学】生成函数 ( 正整数拆分 | 无序 | 有序 | 允许重复 | 不允许重复 | 无序不重复拆分 | 无序重复拆分 )
文章目錄
- 一、正整數拆分
- 二、無序拆分
- 1、無序拆分 不允許重復
- 2、無序拆分 允許重復
參考博客 :
- 【組合數學】生成函數 簡要介紹 ( 生成函數定義 | 牛頓二項式系數 | 常用的生成函數 | 與常數相關 | 與二項式系數相關 | 與多項式系數相關 )
- 【組合數學】生成函數 ( 線性性質 | 乘積性質 )
- 【組合數學】生成函數 ( 移位性質 )
- 【組合數學】生成函數 ( 求和性質 )
- 【組合數學】生成函數 ( 換元性質 | 求導性質 | 積分性質 )
- 【組合數學】生成函數 ( 性質總結 | 重要的生成函數 ) ★
- 【組合數學】生成函數 ( 生成函數示例 | 給定通項公式求生成函數 | 給定生成函數求通項公式 )
- 【組合數學】生成函數 ( 生成函數應用場景 | 使用生成函數求解遞推方程 )
- 【組合數學】生成函數 ( 使用生成函數求解多重集 r 組合數 )
- 【組合數學】生成函數 ( 使用生成函數求解不定方程解個數 )
- 【組合數學】生成函數 ( 使用生成函數求解不定方程解個數示例 )
- 【組合數學】生成函數 ( 使用生成函數求解不定方程解個數示例 2 | 擴展到整數解 )
一、正整數拆分
正整數拆分 涉及內容 :
- 拆分定義與分類
- 無序拆分
- 有序拆分
一個正整數可以 拆分成若干正整數 的和 , 每種不同的拆分方法 , 就可以 看做一個方案 ;
按照拆分順序進行分類 : 444 拆分成 111 和 333 , 444 拆分成 333 和 111 ;
- 有序拆分 : 上述 222 個 正整數拆分 , 是 兩種不同的拆分方法 ;
- 無序拆分 : 上述 222 個 正整數拆分 , 是 同一種拆分方法 ;
按照是否重復進行分類 :
- 允許重復 : 拆分時 , 允許拆分成若干個重復的正整數 , 如 333 拆分成 333 個 111 ;
- 不允許重復 : 拆分時 , 拆分的正整數 不允許重復 , 如 333 拆分成 333 個 111 是錯誤的 , 只能拆分成 1,21,21,2 ;
正整數拆分可以按照性質 , 分為 444 類 ;
- 有序重復
- 有序不重復
- 無序重復
- 無序不重復
二、無序拆分
無序拆分基本模型 :
將 正整數 NNN 無序拆分成正整數 , a1,a2,?,ana_1, a_2, \cdots , a_na1?,a2?,?,an? 是拆分后的 nnn 個數 ,
該拆分是無序的 , 上述拆分的 nnn 個數的個數可能是不一樣的 ,
假設 a1a_1a1? 有 x1x_1x1? 個 , a2a_2a2? 有 x2x_2x2? 個 , ?\cdots? , ana_nan? 有 xnx_nxn? 個 , 那么有如下方程 :
a1x1+a2x2+?+anxn=Na_1x_1 + a_2x_2 + \cdots + a_nx_n = Na1?x1?+a2?x2?+?+an?xn?=N
這種形式可以使用 不定方程非負整數解個數 的生成函數計算 , 是 帶系數 , 帶限制條件的情況 , 參考 : 組合數學】生成函數 ( 使用生成函數求解不定方程解個數 )
無序拆分的情況下 , 拆分后的正整數 , 允許重復 和 不允許重復 , 是兩類組合問題 ;
如果不允許重復 , 那么這些 xix_ixi? 的取值 , 只能 取值 0,10, 10,1 ; 相當于 帶限制條件 , 帶系數 的 不定方程非負整數解 的情況 ;
如果 允許重復 , 那么這些 xix_ixi? 的取值 , 就是 自然數 ; 相當于 帶系數 的 不定方程非負整數解 的情況 ;
1、無序拆分 不允許重復
討論 無序拆分 , 不允許重復的情況 , 該方式 等價于 帶限制條件 , 帶系數 的 不定方程非負整數解 的情況 ;
a1a_1a1? 項對應的生成函數項 , x1x_1x1? 取值 0,10,10,1 , 則對應的生成函數項是 (ya1)0+(ya1)1=1+ya1(y^{a_1})^{0} + (y^{a_1})^{1}= 1+ y^{a_1}(ya1?)0+(ya1?)1=1+ya1?
a2a_2a2? 項對應的生成函數項 , x2x_2x2? 取值 0,10,10,1 , 則對應的生成函數項是 (ya2)0+(ya2)1=1+ya2(y^{a_2})^{0} + (y^{a_2})^{1}= 1+ y^{a_2}(ya2?)0+(ya2?)1=1+ya2?
?\vdots?
ana_nan? 項對應的生成函數項 , xnx_nxn? 取值 0,10,10,1 , 則對應的生成函數項是 (yan)0+(yan)1=1+yan(y^{a_n})^{0} + (y^{a_n})^{1}= 1+ y^{a_n}(yan?)0+(yan?)1=1+yan?
將上述生成函數項相乘 , 則可得到完整生成函數 :
G(x)=(1+ya1)(1+ya2)?(1+yan)G(x) = (1+ y^{a_1}) (1+ y^{a_2}) \cdots (1+ y^{a_n})G(x)=(1+ya1?)(1+ya2?)?(1+yan?)
將上述生成函數寫好之后 , 計算 展開 , yyy 的 NNN 次冪的系數 , 就是 正整數 NNN 的拆分方案數 ;
2、無序拆分 允許重復
討論 無序拆分 , 允許重復的情況 , 該方式 等價于 不帶限制條件 , 帶系數 的 不定方程非負整數解 的情況 ;
a1a_1a1? 項對應的生成函數項 , x1x_1x1? 取值 0,1,?0,1, \cdots0,1,? , 則對應的生成函數項是 (ya1)0+(ya1)1+(ya1)2=1+ya1+y2a1?(y^{a_1})^{0} + (y^{a_1})^{1} + (y^{a_1})^{2}= 1+ y^{a_1} + y^{2a_1}\cdots(ya1?)0+(ya1?)1+(ya1?)2=1+ya1?+y2a1??
a2a_2a2? 項對應的生成函數項 , x2x_2x2? 取值 0,1,?0,1, \cdots0,1,? , 則對應的生成函數項是 (ya2)0+(ya2)1+(ya2)2=1+ya2+y2a2?(y^{a_2})^{0} + (y^{a_2})^{1} + (y^{a_2})^{2}= 1+ y^{a_2} + y^{2a_2}\cdots(ya2?)0+(ya2?)1+(ya2?)2=1+ya2?+y2a2??
?\vdots?
ana_nan? 項對應的生成函數項 , xnx_nxn? 取值 0,1,?0,1, \cdots0,1,? , 則對應的生成函數項是 (yan)0+(yan)1+(yan)2=1+yan+y2an?(y^{a_n})^{0} + (y^{a_n})^{1} + (y^{a_n})^{2}= 1+ y^{a_n} + y^{2a_n}\cdots(yan?)0+(yan?)1+(yan?)2=1+yan?+y2an??
將上述生成函數項相乘 , 則可得到完整生成函數 :
G(x)=(1+ya1+y2a1?)(1+ya2+y2a2?)?(1+yan+y2an?)G(x) = (1+ y^{a_1}+ y^{2a_1}\cdots) (1+ y^{a_2} + y^{2a_2}\cdots) \cdots (1+ y^{a_n}+ y^{2a_n}\cdots )G(x)=(1+ya1?+y2a1??)(1+ya2?+y2a2??)?(1+yan?+y2an??)
上述生成函數可以根據 如下生成函數的常用取值 :
{an}\{a_n\}{an?} , an=1na_n = 1^nan?=1n ; A(x)=∑n=0∞xn=11?x\begin{aligned} A(x) & = \sum_{n=0}^{\infty} x^n = \frac{1}{1-x} \end{aligned}A(x)?=n=0∑∞?xn=1?x1??
將 1+ya1+y2a1?1+ y^{a_1}+ y^{2a_1}\cdots1+ya1?+y2a1?? 中的 ya1y^{a_1}ya1? 換元成 xxx , 則可得到
1+x+x2+x3+?1 + x + x^2 + x^3 + \cdots1+x+x2+x3+?
對應的數列是 1n1^n1n
則上述 1+ya1+y2a1?=11?ya11+ y^{a_1}+ y^{2a_1}\cdots =\cfrac{1}{1-y^{a_1}}1+ya1?+y2a1??=1?ya1?1?
最終化簡結果 :
G(x)=(1+ya1+y2a1?)(1+ya2+y2a2?)?(1+yan+y2an?)G(x) = (1+ y^{a_1}+ y^{2a_1}\cdots) (1+ y^{a_2} + y^{2a_2}\cdots) \cdots (1+ y^{a_n}+ y^{2a_n}\cdots )G(x)=(1+ya1?+y2a1??)(1+ya2?+y2a2??)?(1+yan?+y2an??)
=1(1?ya1)(1?ya2)?(1?yan)\ \ \ \ \ \ \ \ \ \ =\cfrac{1}{ (1-y^{a_1}) (1-y^{a_2}) \cdots (1-y^{a_n}) }??????????=(1?ya1?)(1?ya2?)?(1?yan?)1?
將上述生成函數寫好之后 , 計算 展開 , yyy 的 NNN 次冪的系數 , 就是 正整數 NNN 的拆分方案數 ;
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的【组合数学】生成函数 ( 正整数拆分 | 无序 | 有序 | 允许重复 | 不允许重复 | 无序不重复拆分 | 无序重复拆分 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【组合数学】生成函数 ( 使用生成函数求
- 下一篇: 【组合数学】生成函数 ( 正整数拆分 |