浅谈生成函数和多项式

本文通过实例介绍了如何使用生成函数和多项式解决组合问题,如组合不同面额货币的方式数。通过指数表示钱数,多项式乘积的系数表示组合方案数。进一步探讨了在无限数量货币的情况下,如何利用生成函数和多项式计算特定金额的组合方案,并引出求解系数的方法,如利用二项式定理和数列知识。
摘要由CSDN通过智能技术生成

我们先来看这样一个生活问题:

你手头有1个1元,一个2元,一个3元(假币!!)和一个4元(这是哪个国家的题啊....),之后你会很好奇你能用这些钱组合成多少种数目。

很小学的问题,只要我们稍微那笔枚举一下就能知道,我们能得到0-10元之间所有的钱数。

现在,我们用函数去表示一下每个钱,1元就表示为1+x,2元表示为1+x^2,3元表示为1+x^3,4元表示为1+x^4,也就是说,我用x的指数表示我的钱数。

so....我们将这四个式子相乘

(1+x)(1+x^2)(1+x^3)(1+x^4)
=(1+x+x^2+x^3)(1+x3+x^4+x^7)
=1+x+x^2+2x^3+2x^4+2x^5+2x^6+2x^7+x^8+x^9+x^10  

可以看出来,x的指数由0到10全部都有,说明能凑出0-10元间所有的钱数,而前面的系数,就是你凑出该钱数的方案数。

这是为什么呢?

我们是用指数作为了钱数,而指数乘积是相加,所以,我3元的x^3和4元的x^4相乘也就是这两个钱凑在了一起x^7表示的7元,而多项式的系数则表示你凑成的x^n有多少项,也就是多少种方案,如果这个不好理解,我们举个简单的例子。

你有一块钱,还有1块钱(注意,这两个一块是不一样的哦~),你能凑成yi块的方案数,很明显是2吧,我们用函数方法做一下:

(1+x)(1+x)=1 + x + x + x^2 = 1 + 2x + x^2,x的系数是2。

这就是生成函数。

我们来看一道类似的问题

小明去买一个6元的切糕(糕富帅....)他手头有1元,2元,3元(肯定是国外的小明了),每个钱的张数无限(果然是糕富帅)....不过,小明为了低调些,所以他要正好拿6元钱出门,于是,糕富帅就好奇了,他有多少种方案呢???

结合上面的问题,我们知道1元,因为无数个,所以我们能得到2*1元,3*1元,4*1元,.....于是,1元所能表示的不再单单是1+x,而是1+x+x^2+x^3+x^4......,而2元只能往上表示4元,6元,8元.....所以是1+x^2+x^4+x^6.......同理,3元为1+x^3+x^6+x^9.....

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值