• 【学习笔记】对于母函数的一点理解


    由于本蒟蒻太菜,所以只能写一下比较简单的母函数以及应用了,希望对大家有帮助。

    定义:对于序列(A={a_0,a_1....a_n}),其对应的母函数为(F(x)=a_0+a_1x+a_2x^2+.....)

    就这样,我们构造出了一个母函数。这个是普通型母函数。

    我们先讨论一下最简单的母函数:

    (F(x)=1+x+x^2+x^3+...)

    显然等比数列求和公式得到:

    (F(x)=frac{1}{1-x})

    我们可以将1看成(x^0).

    母函数是用来处理组合计数问题的有力工具,先来一道例题加以说明。

    现在有7个1,3个2,8个3,5个4,问它们能组成的五位数有多少?

    限制要求为:1至少有1个,2和3必须是偶数个(也可以不出现),4只能出现2个或3个。

    其实就是一个组合计数,但是是不是一时看起来不太有头绪呢?

    我们先来构造一个函数吧。

    (G(x)=x+x^2+x^3+x^4+x^5+x^6+x^7)

    我们来解释一下:当1出现1次时,是(x),或者说当1出现一次时的问题答案,对应(x);当1出现2次时,是(x^2),以此类推。

    那么,这个式子的意义就是,当1出现(1,2,3...7)次时,一共有多少种答案。

    此处我们发现,带(x)的项没啥用。也就是说,它只是用来标记的。我们称之为标记函数。

    那么,以此类推,让我们构造一下(2,3,4)的母函数吧!

    (G_2(x)=1+x^2)

    (G_3(x)=1+x^2+x^4+x^6+x^8)

    (G_4(x)=x^2+x^3)

    我们将四个式子乘起来得到:

    (F(x)=G(x)*G_2(x)*G_3(x)*G_4(x))

    (=(x+x^2+2x^3+2x^4+2x^5+2x^6+2x^7+x^8+x^9)*(x^2+x^3+x^4+x^5+...+x^{11}))

    (=x^3+2x^4+4x^5+6x^6+8x^7+10x^8+12x^9+13x^{10}+14x^{11}+13x^{12}+12x^{13}+...+x^{19})

    后面没有继续写是因为我们只需要用到前几项,而且后面几项与前面几项成对称(系数)

    观察一下吧!

    我现在说,(x^5)次方的系数就是我们的答案。(也有可能计算出锅了)

    我们理解一下:前面已经说过了构造1的母函数的思路,那么显然,其它的也是类似。

    那么,我们把所有数位的答案乘起来,不就是总答案了吗!

    所以这种题可以被这样切掉。

    但是注意,如果对于一些无限的数量的话,我们需要用到指数型母函数,它们的区别就在于标志函数了。

    有机会本蒟蒻将会写一下指数型母函数的讲解。于此留下几道例题:

    1.现在有7个黄球,8个绿球,2个红球,定义一个组合中必须包含10个球,且限制:

    黄球至少有5个,绿球必须是偶数个,红球无限制。(注意不是数量无限制,而是条件无限制)

    问,一共有多少种方法组成一个组合呢?

    2.现在我们分别有(1,2,5,9,10g)的砝码各6个,问:最多能称出多少克的物品?能称出几种不同重量的物品?称出最重的物品有多少种方案?

    注意:天平只有一边能放东西。其中,奇数克的砝码只能有奇数个,偶数克的砝码只能有偶数个。

    如果有任何的问题请在评论处指出错误,不胜感激。

  • 相关阅读:
    wx.createWorker使用方法
    Chrome DevTools 面板之console全面解析
    DrawCall优化之分析利器《SpectorJS》
    CocosCreator ScrollView性能优化
    Debian 10.7 安装记录
    Glide切换图片为ARGB格式
    java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
    org.apache.catalina.util.LifecycleMBeanBase.unregister Failed to unregister MBean with name [Catalina:type=Service] during component destruction javax.management.InstanceNotFoundException
    npm install报错:integrity checksum failed when using sha1
    Oracle学习:新建表空间
  • 原文地址:https://www.cnblogs.com/h-lka/p/11354773.html
Copyright © 2020-2023  润新知