【组合数学】指数生成函数 ( 证明指数生成函数求解多重集排列 )

举报
韩曙亮 发表于 2022/01/11 00:15:44 2022/01/11
【摘要】 文章目录 一、证明指数生成函数求解多重集排列 参考博客 : 按照顺序看 【组合数学】生成函数 简要介绍 ( 生成函数定义 | 牛顿二项式系数 | 常用的生成函数 | 与常数相关 |...



参考博客 : 按照顺序看





一、证明指数生成函数求解多重集排列



多重集 S = { n 1 ⋅ a 1 , n 2 ⋅ a 2 , ⋯   , n k ⋅ a k } S=\{ n_1 \cdot a_1 , n_2 \cdot a_2 , \cdots , n_k \cdot a_k \} S={n1a1,n2a2,,nkak}

多重集 S S S r r r 排列数 组成数列 { a r } \{ a_r \} {ar} , 对应的指数生成函数是 :


G e ( x ) = f n 1 ( x ) f n 2 ( x ) ⋯ f n k ( x ) G_e(x) = f_{n_1}(x) f_{n_2}(x) \cdots f_{n_k}(x) Ge(x)=fn1(x)fn2(x)fnk(x)


其中每个生成函数项 f n i ( x ) f_{n_i}(x) fni(x)

f n i ( x ) = 1 + x + x 2 2 ! + ⋯ + x n i n i ! f_{n_i}(x) = 1 + x + \cfrac{x^2}{2!} + \cdots + \cfrac{x^{n_i}}{n_i!} fni(x)=1+x+2!x2++ni!xni


G e ( x ) G_e(x) Ge(x) 展开 , 其中的 r r r 系数就是多重集的排列数 ;



证明上述指数生成函数用途 :

将上述 指数生成函数 展开 ,

指数生成函数项 G e ( x ) = f n 1 ( x ) f n 2 ( x ) ⋯ f n k ( x ) G_e(x) = f_{n_1}(x) f_{n_2}(x) \cdots f_{n_k}(x) Ge(x)=fn1(x)fn2(x)fnk(x) , 由 k k k 个因式相乘得到 ,

每个因式都会提供一个 x m 1 m 1 ! \cfrac{x^{m_1}}{m_1!} m1!xm1 成分 ,


x m 1 m 1 ! \cfrac{x^{m_1}}{m_1!} m1!xm1 来自第一个因式 ,

x m 2 m 2 ! \cfrac{x^{m_2}}{m_2!} m2!xm2 来自第二个因式 ,

⋮ \vdots

x m k m k ! \cfrac{x^{m_k}}{m_k!} mk!xmk 来自第 k k k 个因式 ,


上述因式相乘 x m 1 m 1 ! ⋅ x m 2 m 2 ! ⋯ x m k m k ! \cfrac{x^{m_1}}{m_1!} \cdot \cfrac{x^{m_2}}{m_2!} \cdots \cfrac{x^{m_k}}{m_k!} m1!xm1m2!xm2mk!xmk

其中 m 1 + m 2 + ⋯ + m r = r     , m_1 + m_2 + \cdots + m_r = r \ \ \ , m1+m2++mr=r   ,

0 ≤ m i ≤ n i    , 0 \leq m_i \leq n_i \ \ , 0mini  , i = 0 , 1 , 2 , ⋯   , k i= 0,1,2, \cdots , k i=0,1,2,,k



x m 1 m 1 ! ⋅ x m 2 m 2 ! ⋯ x m k m k ! \cfrac{x^{m_1}}{m_1!} \cdot \cfrac{x^{m_2}}{m_2!} \cdots \cfrac{x^{m_k}}{m_k!} m1!xm1m2!xm2mk!xmk 对应了指数生成函数展开后的分项 ;



     x m 1 m 1 ! ⋅ x m 2 m 2 ! ⋯ x m k m k ! \ \ \ \ \cfrac{x^{m_1}}{m_1!} \cdot \cfrac{x^{m_2}}{m_2!} \cdots \cfrac{x^{m_k}}{m_k!}     m1!xm1m2!xm2mk!xmk

= x m 1 + m 2 + ⋯ + m k m 1 ! m 2 ! ⋯ m k ! =\cfrac{x^{m_1 + m_2 + \cdots + m_k}}{m_1!m_2!\cdots m_k!} =m1!m2!mk!xm1+m2++mk

= x r m 1 ! m 2 ! ⋯ m k ! ⋅ r ! r ! =\cfrac{x^{r}}{m_1!m_2!\cdots m_k!} \cdot \cfrac{r!}{r!} =m1!m2!mk!xrr!r!

= x r r ! ⋅ r ! m 1 ! m 2 ! ⋯ m k ! =\cfrac{x^{r}}{r!} \cdot \cfrac{r!}{m_1!m_2!\cdots m_k!} =r!xrm1!m2!mk!r!


r ! m 1 ! m 2 ! ⋯ m k ! \cfrac{r!}{m_1!m_2!\cdots m_k!} m1!m2!mk!r! 是多重集 r r r 个元素的全排列数


选了 r r r 个元素 , 选择的方法数是 m 1 + m 2 + ⋯ + m r = r m_1 + m_2 + \cdots + m_r = r m1+m2++mr=r 非负整数解个数 , 配置完成后 , 再 进行全排列 , 就可以得到 r r r 排列 ;

( 先选择 , 再进行全排列 )


a r = ∑ r ! m 1 ! m 2 ! ⋯ m k ! a_r = \sum\cfrac{r!}{m_1!m_2!\cdots m_k!} ar=m1!m2!mk!r!

上述求和 , 每个分项都是满足 m 1 + m 2 + ⋯ + m r = r m_1 + m_2 + \cdots + m_r = r m1+m2++mr=r 方程的非负整数解 , 每个非负整数解都对应了多重集的 S S S r r r 组合 ;

组合的全排列数是 r ! m 1 ! m 2 ! ⋯ m k ! \cfrac{r!}{m_1!m_2!\cdots m_k!} m1!m2!mk!r! ,

上述求和 a r = ∑ r ! m 1 ! m 2 ! ⋯ m k ! a_r = \sum\cfrac{r!}{m_1!m_2!\cdots m_k!} ar=m1!m2!mk!r!针对所有满足方程的一切非负整数解进行求和 ;

文章来源: hanshuliang.blog.csdn.net,作者:韩曙亮,版权归原作者所有,如需转载,请联系作者。

原文链接:hanshuliang.blog.csdn.net/article/details/109382608

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。