日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【组合数学】生成函数 ( 正整数拆分 | 无序 | 有序 | 允许重复 | 不允许重复 | 无序不重复拆分 | 无序重复拆分 )

發布時間:2025/6/17 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【组合数学】生成函数 ( 正整数拆分 | 无序 | 有序 | 允许重复 | 不允许重复 | 无序不重复拆分 | 无序重复拆分 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、正整數拆分
  • 二、無序拆分
    • 1、無序拆分 不允許重復
    • 2、無序拆分 允許重復



參考博客 :

  • 【組合數學】生成函數 簡要介紹 ( 生成函數定義 | 牛頓二項式系數 | 常用的生成函數 | 與常數相關 | 與二項式系數相關 | 與多項式系數相關 )
  • 【組合數學】生成函數 ( 線性性質 | 乘積性質 )
  • 【組合數學】生成函數 ( 移位性質 )
  • 【組合數學】生成函數 ( 求和性質 )
  • 【組合數學】生成函數 ( 換元性質 | 求導性質 | 積分性質 )
  • 【組合數學】生成函數 ( 性質總結 | 重要的生成函數 ) ★
  • 【組合數學】生成函數 ( 生成函數示例 | 給定通項公式求生成函數 | 給定生成函數求通項公式 )
  • 【組合數學】生成函數 ( 生成函數應用場景 | 使用生成函數求解遞推方程 )
  • 【組合數學】生成函數 ( 使用生成函數求解多重集 r 組合數 )
  • 【組合數學】生成函數 ( 使用生成函數求解不定方程解個數 )
  • 【組合數學】生成函數 ( 使用生成函數求解不定方程解個數示例 )
  • 【組合數學】生成函數 ( 使用生成函數求解不定方程解個數示例 2 | 擴展到整數解 )




一、正整數拆分



正整數拆分 涉及內容 :

  • 拆分定義與分類
  • 無序拆分
  • 有序拆分

一個正整數可以 拆分成若干正整數 的和 , 每種不同的拆分方法 , 就可以 看做一個方案 ;


按照拆分順序進行分類 : 444 拆分成 111333 , 444 拆分成 333111 ;

  • 有序拆分 : 上述 222 個 正整數拆分 , 是 兩種不同的拆分方法 ;
  • 無序拆分 : 上述 222 個 正整數拆分 , 是 同一種拆分方法 ;

按照是否重復進行分類 :

  • 允許重復 : 拆分時 , 允許拆分成若干個重復的正整數 , 如 333 拆分成 333111 ;
  • 不允許重復 : 拆分時 , 拆分的正整數 不允許重復 , 如 333 拆分成 333111 是錯誤的 , 只能拆分成 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?)


將上述生成函數寫好之后 , 計算 展開 , yyyNNN 次冪的系數 , 就是 正整數 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?


將上述生成函數寫好之后 , 計算 展開 , yyyNNN 次冪的系數 , 就是 正整數 NNN 的拆分方案數 ;

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的【组合数学】生成函数 ( 正整数拆分 | 无序 | 有序 | 允许重复 | 不允许重复 | 无序不重复拆分 | 无序重复拆分 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。