生成函数与指数型生成函数

1. 生成函数

1.1. 生成函数的概念

  我们要研究一个数列的结构.

  我们尝试构造一个函数, 来包含这个数列的信息.

  如果这个函数能够成功地转化, 得到等价的展开形式, 那么就大功告成了.

  为此, 我们给出了生成函数的定义:

  数列 $A = \left\{ a_0, a_1, ..., a_n \right\}$ 的生成函数为 $f(x) = \sum_{k = 0} ^ n a_k x ^ k$ .

  为了防止每次都要定义序列, 我们记数列的第 $n$ 项, 即 $f(x) 的第 $n$ 项系数, 为 $a_n = [n]f(x)$ .

  给出了定义之后, 我们需要探究一些特殊的情形.

  这些特殊的情况, 即能促进对概念的理解和补充, 也能在之后有所应用.

  $\left\{ \binom{n}{0}, \binom{n}{1}, ..., \binom{n}{n} \right\}$ 的生成函数为

    $$f(x) = \sum_{k = 0} ^ n \binom{n}{k} x ^ k = {(1 + x)} ^ n$$

  说明  二项式定理.

  $\left\{ 1, 1, 1, ... \right\}$ 的生成函数为

    $$f(x) = \sum_{k= 0} ^ {\infty} x ^ k = \frac{1}{1 - x}$$

  说明  无穷项等比数列求和.

  $$\frac{1}{1 - x ^ n} = \sum_{k = 0}^ \infty \binom{k + n - 1}{n - 1} x ^ k$$

  证明  组合推理, 插板法.

1.2. 生成函数的性质

  理解清楚生成函数的定义之后, 我们要研究它的性质, 以便于更好地在应用中施展这门技术.

  主要是研究它的一些运算性质, 其中卷积的性质是重中之重.

  

  统一设 $f(x) = \sum_{k = 0} ^ n a_k x ^ k, g(x) = \sum_{k = 0} ^ n b_k x ^ k$ .

  基本定理 $f(x) = g(x) \Leftrightarrow \forall i \in [0, n] a_i = b_i$ .

  线性性质  $f(x) + g(x)$ 为 $\left\{ a_k + b_k \right\}$ 的生成函数.

    $f(x) - g(x)$ 为 $\left\{ a_k + b_k \right\}$ 的生成函数.

    $cf(x)$ 为 $\left\{ ca_k \right\}$ 的生成函数.

  卷积  $(f\otimes g)(x)$ 为 $\left\{ \sum_{k = i + j} a_i \times b_j \right\}$ 的生成函数.

1.3. 求解递推式

  设出生成函数, 求解生成函数, 裂项, 展开.

1.4. 组合计数

  设购买 A 物品 $n$ 件的方案数为 $a_n$ , 购买 B 物品的方案数为 $b_n$ .

  则组合购买 A , B 两种物品 (既可以购买 A 物品, 又可以购买 B 物品) , 一共 $n$ 件的方案数为 $\sum_{i + j = n} a_i \times b_j$ .

  所以 $\left\{ a_k \right\}$ 的生成函数 卷上 $\left\{ b_k \right\}$ 的生成函数 为 组合购买的方案数的生成函数.

2. 指数型生成函数

时间: 2024-08-02 21:15:01

生成函数与指数型生成函数的相关文章

[POJ 3734] Blocks 指数型生成函数

题意 有红, 黄, 蓝, 绿四种颜色的砖头. 现在你要将 $n$ 个砖头放成一排. 蓝色, 绿色的砖头的个数必须为偶数. 问最终放置的方案数. n <= 10 ^ 9 . 分析 构建指数型生成函数. $R(x) = Y(x) = \sum_{k = 0} ^ {\infty} \frac{x ^ k}{k !} = e ^ x$ . $B(x) = G(x) = \sum_{k = 0} ^ {\infty} \frac{x ^ {2k}}{(2k)!} = \frac{e ^ x + e ^

hdu 1521 排列组合 —— 指数型生成函数

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1521 标准的指数型生成函数: WA了好几遍,原来是多组数据啊囧: 注意精度,直接强制转换(int)是舍去小数,会WA,+0.5再强制转换或输出 %.0lf 是四舍五入,能A. 代码如下: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace

组合数学 随记

组合数学 1.母函数 母函数(生成函数): 生成函数有普通型生成函数和指数型生成函数两种(本题是普通型). 形式上,普通型母函数用于解决多重集的组合问题, 指数型母函数用于解决多重集的排列问题. 母函数还可以解决递归数列的通项问题(例如使用母函数解决斐波那契数列,Catalan数的通项公式). 1.普通母函数:  /*hdu2082*/ 构造母函数G(x), G(x) = a0 + a1*x + a2* + a3* +....+ an*,  则称G(x)是数列a0,a1…an的母函数. 通常普通

hdu2082 找单词 (母函数)

找单词 题意: 中文题,考虑是不是要写个英文题意..(可惜英语水平不够  囧rz)                (题于文末) 知识点: 母函数(生成函数): 生成函数有普通型生成函数和指数型生成函数两种(本题是普通型). 形式上,普通型母函数用于解决多重集的组合问题, 指数型母函数用于解决多重集的排列问题. 母函数还可以解决递归数列的通项问题(例如使用母函数解决斐波那契数列,Catalan数的通项公式). 普通母函数: 构造母函数G(x), G(x) = a0 + a1*x + a2* + a

算法总结之母函数

1.概念 生成函数即母函数,是组合数学中尤其是计数方面的一个重要理论和工具.生成函数有普通型生成函数和指数型生成函数两种,其中普通型用的比较多.形式上说,普通型生成函数用于解决多重集的组合问题,而指数型母函数用于解决多重集的排列问题.母函数还可以解决递归数列的通项问题(例如使用母函数解决斐波那契数列的通项公式). 2.组合问题中的应用 先放两句百度百科上的原话: 1.“把组合问题的加法法则和幂级数的乘幂对应起来” 2.“母函数的思想很简单 — 就是把离散数列和幂级数一 一对应起来,把离散数列间的

HDU2082母函数模板题

找单词 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5782    Accepted Submission(s): 4062 Problem Description 假设有x1个字母A, x2个字母B,..... x26个字母Z,同时假设字母A的价值为1,字母B的价值为2,..... 字母Z的价值为26.那么,对于给定的字母,可以找

快速傅立叶变换(FFT)相关内容汇总

FFT是近年考察非常频繁的算法,与其相关的知识点也相当多样. 这里主要是资料汇总,内容补充和总结等.具体应用应在各大OJ上做相关题目. 目录: 概述 1. 前置技能:数学基础 1.1 多项式概念与运算. 1.2 微积分初步与泰勒展开 1.3 普通型生成函数与指数型生成函数 1.4 线性代数相关(矩阵,行列式与特征多项式) 1.5 组合数与伯努利数 1.6 常系数齐次线性递推 1.7 初等数论与初等代数 1.8 卷积概念与O(n^2)求法 1.9 拉格朗日插值法 2. FFT:快速傅立叶变换算法总

「总结」多项式生成函数相关(1)

实在是太毒瘤了. 大纲. 多项式生成函数相关 默认前置:微积分,各种数和各种反演,FFT,NTT,各种卷积,基本和式变换. 主要内容: 泰勒展开,级数求和,牛顿迭代,主定理. //例题:在美妙的数学王国中畅游,礼物 多项式全家桶:乘法,求逆,求导,积分,分治,ln,exp,fwt,MTT. //城市规划,图的价值,染色,遗失的答案,按位或,随机游走. 生成函数:普通型生成函数,指数型生成函数计数原理. //猎人杀,遗忘的集合,生成树计数 例题. 一.泰勒展开和级数求和 1.泰勒展开 即对于任何函

清北集训Day6T1(生成函数)

听rqy说可以用生成函数做,感觉比较有意思 我们考虑在DP转移的时候, $5,7,9$这三个数是没有限制的 因此他们出现的次数用01串表示的话就是$1111111111111111......$ $3,5$这两个数只能出现偶数次且必须出现 因此他们出现的次数用01串表示的话是$0010101010101010101....$ 因为是组合计数问题,我们考虑用指数型生成函数来搞 对于第一个肯定就是$e^x$ 对于第二个,我们首先用$\frac{e^x+e^{-x}}{2}$构造出$101010101