zoukankan      html  css  js  c++  java
  • 【bzoj4001】[TJOI2015]概率论(卡特兰数+生成函数+数学期望)

    传送门

    题意:
    对于一棵随机生成的(n)个结点的有根二叉树,计算叶子结点个数的期望。

    思路:
    显然根据期望的定义我们可以得到:假设(f(n))(n)个结点的叶子个数和,(g(n))(n)个结点时二叉树的个数,那么答案即为(displaystyle frac{g(n)}{f(n)})
    其中(displaystyle g(n)=sum_{i=0}^{n-1}g(i)cdot g(n-1-i)),显然为卡特兰数,即(displaystyle g(n)=frac{1}{n+1}cdot {2nchoose n})
    考虑怎么求(f(n):)

    [f(n)=2cdotsum_{i=0}^{n-1}f(i)cdot g(n-1-i) ]

    接下来考虑用生成函数求解有(displaystyle f=2x*f*g+x),后面加上(x)是考虑(f(1)=1)的情况。
    那么(displaystyle f=frac{x}{1-2x*g}),因为(g)的生成函数为(displaystyle frac{1-sqrt{1-4x}}{2x}),那么(displaystyle f=frac{x}{sqrt{1-4x}})
    然后将分母用广义牛顿二项式定理展开:

    [egin{aligned} frac{1}{sqrt{1-4x}}=&(1-4x)^{-frac{1}{2}}\ =&sum_{i=0}^{infin}{-frac{1}{2}choose i}(-4x)^i\ =&sum_{i=0}^{infin}frac{(-frac{1}{2})cdot (-frac{3}{2})cdots (-frac{2i-1}{2})}{i!}(-4)^ix^i\ =&sum_{i=0}^{infin}frac{1cdot 3cdots (2i-1)}{2^{i}cdot i!}4^ix^i\ =&sum_{i=0}^{infin}frac{(2i-1)!}{2^icdot i!cdot 2cdot 4cdots (2i-2)}4^ix^i\ =&sum_{i=0}^{infin}frac{(2i-1)!}{2^{2i-1}cdot i!cdot (i-1)!}4^ix^i\ =&sum_{i=0}^{infin}2cdot {2i-1choose i}x^i\ =&sum_{i=0}^{infin}{2ichoose i}x^i end{aligned} ]

    所以(f)的第(n)项系数即为(displaystyle{2i-2choose i-1})
    那么最终答案也很好求了,为(displaystylefrac{n(n+1)}{2(2n-1)})
    代码略。

  • 相关阅读:
    @transactional注解下失效
    string.format格式化字符串中转义大括号“{}”
    ArrayList循环遍历并删除元素的常见陷阱
    HashMap、HashTable与ConcurrentHashMap区别
    -webkit-,-moz-,-ms-,-o-具体指什么了?
    常用js正则表达式大全
    hashcode详解
    如何区分oracle服务器、oracle客户端、plsql?
    Oracle Client(客户端) 安装与配置
    Openresty使用
  • 原文地址:https://www.cnblogs.com/heyuhhh/p/12734577.html
Copyright © 2011-2022 走看看