[TJOI2015]概率论

description

Luogu
BZOJ
\(n\)个节点二叉树的叶子节点个数期望。

data range

\[n\le 10^9 \]

solution

考虑\(期望=\frac{权值总和}{总方案数}=\frac{f_n}{g_n}\)
推导\(f_i,g_i\)可得

\[f_i=2\sum_{j=0}^{i-1}f_jg_{i-j-1} \]

\[g_i=\sum_{j=0}^{i-1}g_jg_{i-j-1} \]

考虑其生成函数\(F(x),G(x)\),则

\[F(x)=2F(x)G(x)x+x \]

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

于是有

\[G(x)=\frac{1-\sqrt{1-4x}}{2x} \]

\[F(x)=\frac{x}{\sqrt{1-4x}} \]

可以知道\(g_i\)就是卡特兰数。

\((1-4x)^{\frac{1}{2}}\)\((1-4x)^{-\frac{1}{2}}\)暴力泰勒展开得

\[(1-4x)^{\frac{1}{2}}=1-\sum_{i=1}^{\infty}\frac{(2i-3)!!2^i}{i!}x^i=1-\sum_{i=1}^{\infty}\frac{2}{i}\binom{2i-2}{i-2}x^i \]

\[(1-4x)^{-\frac{1}{2}}=1+\sum_{i=1}^{\infty}\frac{(2i-1)!!2^i}{i!}x^i=1+\sum_{i=1}^{\infty}\frac{2}{i}\binom{2i}{i}x^i \]

其中\(n!!\)表示\(n(n-2)(n-4)(n-6)...(1+[n\%2=1])\),即\(n\)的双阶乘。
于是我们可以得到

\[G(x)=\sum_{i=0}^{\infty}\frac{1}{i+1}\binom{2i}{i}x^i \]

\[F(x)=\sum_{i=0}^{\infty}\binom{2i-2}{i-1}x^i \]

最后答案为

\[\frac{f_n}{g_n}=\frac{\binom{2n-2}{n-1}}{\frac{1}{n+1}\binom{2n}{n}}=\frac{n(n+1)}{2(2n-1)} \]

Code

#include<bits/stdc++.h>
using namespace std;
int main()
{
  int n;scanf("%d",&n);
  printf("%.9lf\n",1.0*(n+1)*n/2/(2*n-1));
  return 0;
}
posted @ 2018-12-20 11:06  cjfdf  阅读(152)  评论(0编辑  收藏  举报