首页 > 其他分享 >普通生成函数

普通生成函数

时间:2023-08-10 22:55:44浏览次数:42  
标签:函数 sum 生成 普通 物品 +...+ pm

普通生成函数

定义:\(F(x)=\sum_{n>=0}\ a_nx^n\)

加减运算

$F(x) \pm G(x)=\sum_{i>=0}\ a_ix^i \pm \sum_{j>=0} b_jx^j $
\(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ = \sum_{n>=0} (a_n \pm b_n)x^n\)
因此\(F(x) \pm G(x)\)是序列\(<a_n \pm b_n>\)的普通生成函数

乘法运算(卷积)

\(F(x)G(x)=\sum_{i>=0} a_ix^i \sum_{j>=0} b_jx^j\)
我们关注\(i+j=n\)的结果
\(F(x)G(x)=\sum_{n>=0}x^n \sum_{i=0}^{n} a_ib_{n-i}\)
因此\(F(x)G(x)\)是序列\(<\sum_{i=0}^n a_ib_{n-i}>\)的普通生成函数

运用

普通生成函数可以用来求解多重集组合数问题。

问题:有\(n\)种物品,每种物品有\(a_i\)个,问取\(m\)个物品的组合数
设从每种物品中取\(b_i\)个,对于一组选定的\(b_i\)进行组合方案数为1。所以第\(n\)种物品的生成函数为\((1+x^1+x^2+...+x^{a_n})\)即我们求对\(1\)到\(n\)所有物品的生成函数的积,输出\(x\)的指数为\(m\)的项的系数即可

例题

\(HDU-2152 \ Fruit\)
有\(n\)种水果,每种水果选购的个数在\([a_i,b_i]\)之间,问买\(m\)个水果有多少种购买方案
构造普通生成函数\((x^{a_1}+...+x^{b_1})(x^{a_2}+...+x^{b_2})...(x^{a_n}+...+x^{b_n})\)

int cala(){
    for(int i=a[1]; i<=b[1]; i++){
        C[i]=1;
    }
    for(int i=2; i<=n; i++){//枚举每个多项式
        //求x^j*x^k的系数
        for(int j=0; j<=m; j++){//求购买m个水果,枚举到m就可以
            for(int k=a[i]; k<=b[i]; k++){//新添的括号内的系数
                D[j+k]+=C[j];
            }
        }
        for(int j=0; j<=n; j++){
            C[j]=D[j];
            D[j]=0;
        }
    }
    return C[m];
}

标签:函数,sum,生成,普通,物品,+...+,pm
From: https://www.cnblogs.com/wrl2010/p/17621810.html

相关文章

  • WEB自动化-Allure报告-使用钩子函数 进行失败截图
    Allure报告中支持使用钩子函数进行失败截图   使用pytest_runtest_makereport钩子函数实现allure报告添加用例失败截图(函数名固定的) Hook函数又称为钩子函数,它的作用可以理解成钩住自己喜欢的东西(在window中,喜欢的东西可理解为消息),然后对自己喜欢的东西单独做处理 ......
  • C++友元函数和友元类的使用
    1.友元介绍在C++中,友元(friend)是一种机制,允许某个类或函数访问其他类的私有成员。通过友元,可以授予其他类或函数对该类的私有成员的访问权限。友元关系在一些特定的情况下很有用,例如在类之间共享数据或实现特定的功能。友元可以分为两种类型:类友元和函数友元。2.类友元类友元(Friend......
  • Jmeter-生成压测报告
     以非GUI命令行执行脚本将Jmeter安装目录\bin添加到系统环境变量path命令参数-n命令行模式-t脚本路径-l测试结果路径(jtl或者csv)-j日志路径-r分布式执行-R远程服务器列表-g生成测试......
  • 利用pytorch自定义CNN网络(四):损失函数和优化器
    本文是利用pytorch自定义CNN网络系列的第四篇,主要介绍如何训练一个CNN网络,关于本系列的全文见这里。笔者的运行设备与软件:CPU(AMDRyzen™54600U)+pytorch(1.13,CPU版)+jupyter;训练模型是为了得到合适的参数权重,设计模型的训练时,最重要的就是损失函数和优化器的选择。损......
  • XMLEncoder生成的xml文档的schema分析
    以下文为基础,进行分析LongTermPersistenceofJavaBeansComponents:XMLSchemahttp://java.sun.com/products/jfc/tsc/articles/persistence3/ 1BasicElements每个xml以一个可选的<?xmlversion="1.0"encoding="UTF-8"?>开头,接着是<javaversion="1.4.0&q......
  • 无涯教程-Perl - int函数
    描述此函数返回EXPR的整数元素,如果省略则返回$_。int函数不进行舍入。如果需要将值四舍五入为整数,则应使用sprintf。语法以下是此函数的简单语法-intEXPRint返回值此函数返回EXPR的整数部分。例以下是显示其基本用法的示例代码-#!/usr/bin/perl$int_val=int(......
  • 什么是迭代器,生成器,装饰器;django的信号用过吗?如何用,干过什么;什么是深拷贝,什么是浅拷贝
    什么是迭代器,生成器,装饰器;django的信号用过吗?如何用,干过什么;什么是深拷贝,什么是浅拷贝,如何使用什么是迭代器,生成器,装饰器#迭代器-迭代:一种不依赖于索引取值的方式,我们不需要关注它的位置,只要能够一个个取值,它就称之为迭代,python中就是for循环,内部调用对象.__next__()-可迭......
  • 无涯教程-Perl - index函数
    描述此函数返回STR中第一次出现的SUBSTR的位置,该位置从开头(从零开始)开始,或者从POSITION(如果指定)开始。语法以下是此函数的简单语法-indexSTR,SUBSTR,POSITIONindexSTR,SUBSTR返回值失败时此函数返回-1,否则返回匹配字符串的位置(第一个字符从零开始)。例......
  • Freemarker生成电子协议并转png图片
    目录依赖包配置模板文件目录Java代码html转png图片需要用到wkhtmltopdfFreemarker是一种流行的模板引擎,它可以使用Java、C#、PHP等语言编写模板,并从模板中生成HTML、XML、文本等各种文件格式。Freemarker模板由一个或多个包含变量和指令的文本文件组成,这些变量和指令可以在......
  • 使用keil生成 .bin 文件
    产品结构设计没有预留SW烧录口,导致每次更新程序都要拆壳烧录,要不就是引一根烧录线出来,这种方式导致外观非常不美观,产品展示或演示给人第一印象就不好,刚好产品有串口接口,就打算使用IAP功能升级软件;IAP需要生产BIN文件更新软件,而之前工程生成的都是HEX文件再烧录; 1.hex文件与bin......