组合数学-生成函数(母函数)解决组合问题、递归方程求解

生成函数(母函数)

法国数学家拉普拉斯(对!就是那个拉普拉斯变换的发明者)在他的著作中提出了生成函数的概念

一、普通生成函数解决组合问题

我认为生成函数解决组合问题就是把问题转换成二项式或递推关系问题的方法
问题


用1元、5元、10元三种纸币能拼出多少种100元的方案?


这其实是一个组合问题,用三种纸币组合成100元
这种题用生成函数来做就很方便
下面我们来分析这道题

  • 分析1元硬币的使用情况(五元十元可类比)

      一元硬币在最终的方案中可能用到0次、1次、2次.......
    

    好,接下来,我们尝试将这个问题转换成二项式问题
    我们将0次写为 x 0 x^0 x0,1次写为 x 1 x^1 x1,2次写成 x 2 x^2 x2
    则,针对1元硬币的所有情况就可以表示为 A = x 0 + x 1 + x 2 . . . A=x^0+x^1+x^2... A=x0+x1+x2...
    类比到其他两种硬币:
    五元硬币: B = x 0 + x 5 + x 10 . . . B=x^0+x^5+x^{10}... B=x0+x5+x10...
    十元硬币: C = x 0 + x 10 + x 20 . . . C=x^0+x^{10}+x^{20}... C=x0+x10+x20...
    所以硬币组合的所有情况就是将以上三个多项式相乘
    A l l C o u n t = ( x 0 + x 1 + x 2 . . . ) ∗ ( x 0 + x 5 + x 10 . . . ) ∗ ( x 0 + x 10 + x 20 . . . ) AllCount=(x^0+x^1+x^2...)*(x^0+x^5+x^{10}...)*(x^0+x^{10}+x^{20}...) AllCount=(x0+x1+x2...)(x0+x5+x10...)(x0+x10+</

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值