zoukankan      html  css  js  c++  java
  • 学习笔记 生成函数

    (T(x)=xe^{T(x)})

    引自yyb的博客

    EGF本质上和OGF是类似的,区别在于除了一个阶乘。

    分母多除了一个阶乘意味着分子也要多乘阶乘,而你的值就是分子的值,所以多乘一个阶乘当然是排列了

    阶乘在计数中意为着什么呢?顺序。
    那么从中,我们明白了这样一件事情:OGF考虑的是组合,意味着相同物品之间没有区别,而EGF考虑的是排列,相同之间也要考虑一个顺序关系。

    基础知识

    约定

    (x^{overline{n}}=Pi_{i=0}^{n-1}(x+i)=x(x+1)...(x+n-1))

    (x^{underline{n}}=Pi_{i=0}^{n-1}(x-i)=x(x-1)..(x-n+1))

    函数(F(x))(x^n) 项系数记作([x^n]F(x))

    广义二项式,幂级数(OGF用)

    系数

    ({alpha choose k}=frac{alpha(alpha-1)...(alpha-k+1)}{k!})

    定理

    ((x+y)^alpha=sum_{k=0}^{infty}{alphachoose k}x^{alpha-k}y^k)

    常用展开

    (frac{1}{1-A(x)}=sum_{ige 0}A^{i}(x))

    泰勒级数(EGF用)

    麦克劳林级数

    (sum_{n=0}^{infty}frac{f^{(n)}(0)}{n!}x^n)

    常用展开

    (e^x=sum_{nge0}frac{1}{n!}x^n)

    (xe^x=sum_{nge 0}frac{n}{n!}x^n)

    (e^{Cx}=sum_{ige 0}frac{C^n}{n!}x^n)

    (ln(1-x)=-sum_{nge1}frac{1}{n}x^n)

    常用运算

    (frac{1}{1-A(x)}=sum_{ige 0}A^{i}(x))

    (ln(1-A(x))=-sum_{ige1}frac{1}{i}A^i(x))

    (exp(A(x))=sum_{ige 0}frac{A^i(x)}{i!})

    题目选解

    第一类 STIRLING 数列的生成函数

    推一下递推式子

    [egin{aligned} F_{n+1}(x)&=sum_{ige 1}(nS(n,i)+ S(n,i-1))x^i\&=nsum_{ige1}S(n,i)x^i+xsum_{ige1}S(n,i-1)x^{i-1}\&=(x+n)F_n(x) end{aligned} ]

    然后数学归纳法可证(F_n(x)=Pi_{i=0}^{n-1}(x+i)=x^{overline{n}})

    城市规划

    (g(n)=2^{frac{n(n-1)}{2}}/n!=2^{nchoose2}/n!)表示n个点的有标号无向图(不一定连通)的方案数/n!

    (f(n))表示n个点的有标号连通无向图的方案数/n!

    然后写出这两个的生成函数 $ G(x)$ , (F(x)),发现是EGF型的

    还有如下关系

    [egin{aligned}G(x)&=sum_{kge0}frac{F^{k}(x)}{k!} \ &=exp(F(x))end{aligned} ]

    (F(x)=ln(G(x)))

    答案为([F_n]G*n!)

    付公主的背包

    相乘转换为对数相加

    题解 付公主的背包

    参考资料

    yyb的博客

    鏼爷15年集训队论文

  • 相关阅读:
    Leetcode Power of Two
    Leetcode Reverse Integer
    Leetcode Add Digits
    Leetcode Roman to Integer
    Python 函数的定义语法
    Python 函数的三种定义方式
    Python 函数的定义与调用
    Python 函数分类
    Python 为什么要使用函数
    Python 文件的二进制读写
  • 原文地址:https://www.cnblogs.com/fpjo/p/14367250.html
Copyright © 2011-2022 走看看