生成函数

根据牛顿老爷的研究,有广义二项式定理:

\[(ax+b)^{n}=\sum\limits_{k=0}^{+\infty} {n\choose k} (ax)^kp^{n-k} \]

注意到这里的组合数的定义需要拓展,我们约定 \(m\ge 0,n<m\) 时:

\[{n\choose m}=\dfrac{\prod\limits_{i=n-m+1}^{n} i}{m!} \]

简单的说,\(m\) 即选择的个数必须时自然数,而 \(n\) 则没有范围限制,只要是整数即可。

进一步的,我们有:

\[{-n\choose m}=(-1)^m {n+m-1\choose n-1} \]

考虑证明,根据定义易得:

\[{-n\choose m}=\dfrac{\prod\limits_{i=-n-m+1}^{-n} i}{m!}\\ \]

交换一下顺序:

\[(-1)^{-n-(-n-m+1)+1}\dfrac{\prod\limits_{i=n}^{n+m-1}i}{m!} \]

整理一下得到:

\[(-1)^{m}\dfrac{(n+m-1)!}{(n-1)!m!}=(-1)^{m}{n+m-1\choose n-1} \]

这就让我们可以把拓展之后的组合转化成我们熟悉的形式。

需要注意的是,网上一些笔记要求 \(n,m\) 之间满足大小关系,这是不必要的,只要同号就行了。

于是现在我们就可以开心的学习生成函数了,对于生成函数在实际的应用某个东西的生成函数 \(f\),满足 \([x^i]f(x)\) 为当选择 \(x\) 个时的方案数。

BZOJ3028 食物

承德汉堡选择偶数个那么其生成函数为:

\[f(x)=\sum\limits_{k=0}^{+\infty} x^{2k} \]

\(1\) 个的方案数 \([x]f(x)=0\),而选 \(2\) 个的方案数 \([x^2]f(x)=1\)

类似的,我们两边同乘 \(x^2\),那么就得到了:

\[x^2f(x)=\sum\limits_{k=1}^{+\infty} x^{2k} \]

进一步的,可以得到:

\[x^2f(x)=\sum\limits_{k=0}^{+\infty}x^{2k}-1 \]

即:

\[x^2f(x)=f(x)-1 \]

那么就得到了:

\[f(x)=\dfrac{1}{1-x^2} \]

那么 \(f(x)=\dfrac{1}{1-x^2}\) 就是生成函数 \(f(x)=\sum\limits_{k=0}^{+\infty} x^{2k}\) 的封闭形式。

对于剩下的情况,我们逐一考虑。

可乐:

\[f(x)=x+1 \]

鸡腿:

\[f(x)=x^2+x+1 \]

蜜桃多:

\[f(x)=\sum\limits_{k=0}^{+\infty} x^{2k+1}=x\sum\limits_{k=0}^{+\infty} x^{2k}=\dfrac{x}{1-x^2} \]

鸡块:

\[f(x)=\sum\limits_{k=0}^{+\infty} x^{4k}=\dfrac{1}{1-x^4} \]

包子:

\[f(x)=x^3+x^2+x+1 \]

土豆片炒肉:

\[f(x)=x+1 \]

面包:

\[f(x)=\sum\limits_{k=0}^{+\infty} x^{3k}=\dfrac{1}{1-x^3} \]

把上面的封闭形式全部乘起来得到:

\[\dfrac{x}{(x-1)^4}=x(x-1)^{-4} \]

那么根据牛顿老爷的研究,有:

\[x\sum\limits_{k=0}^{+\infty}{-4\choose k}x^k(-1)^{-4-k} \]

于是我们转化一下得到:

\[x\sum\limits_{k=0}^{+\infty}{k+3\choose 3}(-1)^kx^k(-1)^{-4-k} \]

整理一下得到:

\[g(x)=x\sum\limits_{k=0}^{+\infty} {k+3\choose k}x^k \]

于是就得到了答案:

\[[x^n]g(x)={n+3\choose n} \]

做完了。

posted @ 2025-09-26 14:36  未抑郁的刘大狗  阅读(2)  评论(0)    收藏  举报