zoukankan      html  css  js  c++  java
  • 生成函数

    生成函数

    先贴上两位大佬的博客:https://www.cnblogs.com/RabbitHu/p/9178645.html,https://www.cnblogs.com/moomcake/p/9385828.html。

    它们可以解答两个问题:生成函数里的x有什么用——没什么用,去掉也行。用生成函数的好处在哪里——把组合问题的法则和幂级数的乘幂对应起来。

    加法法则的定义:设事件A有m种产生方式,事件B有n种产生方式,则事件A或B之一有m+n种产生方式。

    乘法法则的定义:做一件事,完成它需要分成n个步骤,做第一 步有m1种不同的方法,做第二步有m2种不同的方法,……,做第n步有mn种不同的方法。那么完成这件事共有 N=m1×m2×m3×…×mn 种不同的方法。

    让我们来举个栗子:现在有1g,2g,3g三种砝码,得到mg质量的方案数是多少呢?显然,我们要在1g,2g和3g的砝码中都挑出若干个,如果它们的质量组合起来正好是mg,意味着得到mg质量的方案数+1。

    考虑构造三个函数。1g砝码对应的函数是(f_1(x)=1+x+x^2+dots),表示用1g砝码得到某个质量只有一个方案。同理,(f_2(x)=1+x^2+x^4+dots,f_3(x)=1+x^3+x^6+dots)。那么,(f_1f_2f_3)就表示用1g,2g,3g砝码得到某个质量的方案数。

    我们可以这样来看两个生成函数A和B相乘得到C:对于C的第i项,组成它的方案数就是组成A的第0项的方案数*组成B的第i项的方案数+组成A的第1项的方案数*组成B的第i-1项的方案数……以此类推。这里就体现了组合问题的那两个法则。

    通常第i项表示选i个此类物品有几种方案?

  • 相关阅读:
    mysql创建账号
    CentOS 6.4下Squid代理服务器的安装与配置
    匿名函数 闭包
    array_values打破原有的数组key值,重新从0往上排序
    鹏哥yh搜索
    mosh的安装和使用
    提高php效率的技巧
    svn服务器配置
    限制input输入两位小数
    小程序弹出层覆盖不了canvas
  • 原文地址:https://www.cnblogs.com/MyNameIsPc/p/9605351.html
Copyright © 2011-2022 走看看