生成函数

Posted mikufun-hzoi-cpp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成函数相关的知识,希望对你有一定的参考价值。

  • 一.一些基础知识

?费马定理:若 (f)(x_0) 某邻域有定义,且在 (x_0) 处可导,那么如果 (x_0)(f) 极值点则 (f(x_0)=0) 

?罗尔中值定理:若 (f)([a,b]) 连续且在 ((a,b)) 可导且 (f(a)=f(b)),那么存在一个 (xin (a,b)),使得 (f(x)=0)

?洛必达法则:若 (f,g) 满足

  • 1.(limlimits_{x ightarrow x_0}f(x)=limlimits_{x ightarrow x_0}g(x)=0)

  • 2.在 (x) 的某空心邻域 (U^o(x_0))(f,g) 均可导且 (g'(x) eq 0)

  • 3.(limlimits_{x ightarrow x_0}frac{f(x)}{g(x)}=A)

?则 (limlimits_{x ightarrow x_0}frac{f(x)}{g(x)}=limlimits_{x ightarrow x_0}frac{f'(x)}{g'(x)}=A)

  • 二.经典问题

?普通型生成函数

  • 1.(Fibonacci) 数列的生成函数

?考虑 (a_i=a_{i-1}+a_{i-2}),若 (G(x))(Fibonacci) 数列的生成函数

?那么[egin{aligned}A&=a_0+a_1x+a_2x^2+...\xA&=0+a_0x+a_1x^2+...\x^2A&=0+0+a_0x^2+...end{aligned}]

?则 (A-xA-x^2A=1)

?所以 (A=frac{1}{1-x-x^2})

?

  • 2.(Catlan) 数的生成函数

?我们知道 (c_n=sumlimits_{i=0}^{n-1}c_ic_{n-i-1}),若 (C(x))(Catlan) 数列的生成函数

?则 (C^2(x)=sumlimits_{i=0}^{infty}c_{i+1}x^i),平移一下得到 (xC^2(x)=sumlimits_{i=1}^{infty}c_ix^i)

?所以 (C(x)=1+xC^2(x)),即 (C(x)=frac{1-sqrt{1-4x}}{2x})

?泰勒展开一下可以得到 (Catlan) 通数项公式 (c_i=frac{1}{i+1}inom{2i}{i})

?指数型生成函数

?排列的生成函数 (hat{P}(x)=frac{1}{1-x})

?环排列生成函数 (hat{H}(x)=ln(frac{1}{1-x}))

?我们发现 (hat{P}(x)=e^{hat{H}(x)}),根据环排列可以组成排列推导可发现组成关系均满足这一柿子

?错排生成函数 (hat{C}(x)=e^{hat{H}(x)-x}=frac{e^{-x}}{1-x}),根据在排列中减去大小为1的环排列得到

?n个点有标号无向连通图生成函数,根据n个点有标号无向图生成函数 (hat{W}(x)=sumlimits_{i=0}^{infty}2^{inom{i}{2}}x^i) 得到 (hat{L}(x)=ln(hat{W}(x)))

以上是关于生成函数的主要内容,如果未能解决你的问题,请参考以下文章

13 生成器函数

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

生成器 生成器函数

生成器 三元表达式 列表生成式 匿名函数 内置函数

生成器和生成器函数以及各种推导式

函数——生成器,面向过程编程,三元表达式,生成式,内置函数