【组合数学】生成函数 ( 使用生成函数求解不定方程解个数 )

举报
韩曙亮 发表于 2022/01/11 00:08:40 2022/01/11
【摘要】 文章目录 一、使用生成函数求解不定方程解个数1、带限制条件2、带系数 参考博客 : 【组合数学】生成函数 简要介绍 ( 生成函数定义 | 牛顿二项式系数 | 常用的生成函数 |...



参考博客 :





一、使用生成函数求解不定方程解个数



不定方程的解个数 :

x 1 + x 2 + ⋯ + x k = r x_1 + x_2 + \cdots + x_k = r x1+x2++xk=r

x i x_i xi 为自然数 ;

之前通过组合对应的方法 , 已经解决 , 其解个数是 C ( k + r − 1 , r ) C(k + r - 1 , r) C(k+r1,r)


不定方程解的个数 , 推导过程参考 : 【组合数学】排列组合 ( 多重集组合数 | 所有元素重复度大于组合数 | 多重集组合数 推导 1 分割线推导 | 多重集组合数 推导 2 不定方程非负整数解个数推导 ) 二、多重集组合 所有元素重复度大于组合数 推导 2 ( 不定方程非负整数解个数推导 )


上述情况下 , x i x_i xi 的取值都是没有上限的 , 如果 x i x_i xi 取值受限 , 如 x 1 x_1 x1 取值必须满足 2 ≤ x 1 ≤ 5 2 \leq x_1 \leq 5 2x15 条件时 , 就不能使用上述公式进行计算 , 这里需要 使用到生成函数求解 ;




1、带限制条件


x 1 + x 2 + ⋯ + x k = r x_1 + x_2 + \cdots + x_k = r x1+x2++xk=r

如果 x i x_i xi 取值受到约束 , l i ≤ x i ≤ n i l_i \leq x_i \leq n_i lixini , 则对应的 生成函数项的 y y y 次幂值从 l i l_i li n i n_i ni ;

对应的生成函数项是 y l i + y l i + 1 + ⋯ + y n i y^{l_i} + y^{l_i + 1} + \cdots + y^{n_i} yli+yli+1++yni


完整的生成函数是 :

G ( y ) = ( y l 1 + y l 1 + 1 + ⋯ + y n 1 ) ( y l 2 + y l 2 + 1 + ⋯ + y n 2 ) ⋯ ( y l k + y l k + 1 + ⋯ + y n k ) 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)


将上述生成函数结果乘出来 , y r y^r yr 前的系数 , 就是不定方程 的解的个数 ;



2、带系数


p 1 x 1 + p 2 x 2 + ⋯ + p k x k = r p_1x_1 + p_2x_2 + \cdots + p_kx_k = r p1x1+p2x2++pkxk=r

x i ∈ N x_i \in N xiN , 非负整数解 , 对 x i x_i xi 不设置上限 ;


带系数的函数非负整数解 , 生成函数的项的基本的 底是 y p i y^{p_i} ypi , 幂的取值范围是 0 , 1 , 2 , ⋯ 0 , 1, 2, \cdots 0,1,2, ,

每个生成函数项是 ( y p i ) 0 + ( y p i ) 1 + ( y p i ) 2 + ( y p i ) 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 + y p i + y 2 p i + y 3 p i + ⋯ 1 +y^{p_i} + y^{2p_i} + y^{3p_i} + \cdots 1+ypi+y2pi+y3pi+


将所有的 k k k 项相乘 , 就是对应的生成函数 :

G ( y ) = ( 1 + y p 1 + y 2 p 1 + y 3 p 1 + ⋯ ) ( 1 + y p 2 + y 2 p 2 + y 3 p 2 + ⋯ ) ⋯ ( 1 + y p k + y 2 p k + y 3 p k + ⋯ ) 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+)


该方程的非负整数解个数是 y r y^r yr 前的系数 ;

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

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

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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