用户工具

站点工具


2020-2021:teams:no_morning_training:shaco:知识点:数论:生成函数

这是本文档旧的修订版!


生成函数

前言

用以解决一类问题:几类物品各自可以取的数目具有一定的限制,求共取i种的方案数。

概念

对于数列$a_{n}=\{a_1,a_2,···,a_n\}$,它的生成函数即为$f(x)={a_1x+a_2x^2+···+a_nx^n}$。

常见类型

这里介绍的是一种将x限定在(-1,1)的范围内化简的结果(x本身也没有意义,可以添加一些设定),这样的简化结果利于后面的计算,而且与不化简的记过表达的意义是相同的。 \[\sum_{i=0}^{\infty}{x^{ik}}=\frac{1}{1-x^k}\] \[\sum_{i=0}^{n}{x^{ik}}=\frac{1-x^{(n+1)k}}{1-x^k}\] \[\sum_{i=0}^{\infty}{C_{i+k-1}^{k-1}}{x^i}=\frac{1}{(1-x)^k}\]

解决问题

将取不同物品的方案的生成函数相乘,得到的函数中$x^i$的系数即是共取i个物品的方案数。

看一个例子

我们要从苹果、香蕉、橘子和梨中拿一些水果出来,要求苹果只能拿偶数个,香蕉的个数要是5的倍数,橘子最多拿4个,梨要么不拿,要么只能拿一个。问按这样的要求拿n个水果的方案数。 苹果的生成函数是

2020-2021/teams/no_morning_training/shaco/知识点/数论/生成函数.1590625464.txt.gz · 最后更改: 2020/05/28 08:24 由 shaco