TJOI2015 概率论

生成函数做法

前置:卡特兰数

\(C_n\)\(n\)个节点的二叉树的个数,\(C_0=1\),对于\(n \geq 1\),取一个根节点,枚举其左子树大小,有

\[C_n=\sum_{i=0}^{n-1}C_iC_{n-1-i} \]

则卡特兰数的生成函数\(C\)满足

\[C(x)=C_0+xC^2(x)=1+xC^2(x),C_0=C(0)=1 \]

解方程得

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

上面为什么不取正呢?考虑x=0,取负上下为等阶无穷小,值为1;取正上面是2下面是0,无意义。所以只能取负。

\[C(x)=\frac{1}{2x}\left( 1- \sum_{n=0}^{\infty}\binom{\frac{1}{2}}{n} (-4x)^n \right)=-\frac{1}{2}\sum_{n=0}^{\infty} \binom{\frac{1}{2}}{n+1}(-4)^{n+1}x^n \]

\[C_n=-\frac{1}{2}\binom{\frac{1}{2}}{n+1}(-4)^{n+1}=2\frac{\prod_{i=0}^{n}(\frac{1}{2}-i)}{(n+1)!}(-1)^n 2^{2n} \]

\[=\frac{(2n-1)!!}{(n+1)!}2^n=\frac{(2n)!}{n!n!(n+1)}=\frac{1}{n+1}\binom{2n}{n} \]

分析

\(h_n\)表示这\(C_n\)个二叉树的叶子数目之和,有\(h_0=0,h_1=1\)

对于\(n\geq 2\),枚举根的左儿子大小并由对称性,有

\[h_n=2\sum_{i=0}^{n-1}h_iC_{n-1-i} \]

\[h(x)-h_0-h_1x=2xh(x)C(x) \]

\[h(x)=2xh(x)C(x)+x \]

根据\(C(x)=\frac{1-\sqrt{1-4x}}{2x}\),解得

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

\[h(x)=x\sum_{k=0}^{\infty}\binom{-\frac{1}{2}}{k}(-4x)^k \]

\[h_n=\binom{-\frac{1}{2}}{n-1}(-1)^{n-1}2^{2(n-1)}=\frac{\prod_{i=0}^{n-2}(-\frac{1}{2}-i)}{(n-1)!}(-1)^{n-1}2^{2(n-1)} \]

\[=\frac{(2n-3)!!}{(n-1)!}2^{n-1}=\frac{(2n-2)!}{(n-1)!(n-1)!}=\binom{2n-2}{n-1} \]

那么期望值为

\[\frac{h_n}{C_n}=\frac{n(n+1)}{2(2n-1)} \]

组合做法

对于一个叶子,可以用一个pair来描述:去掉该叶子后的二叉树,在该二叉树的哪个位置添加该叶子。

每个pair也对应了唯一的叶子。所以考虑计数这个pair

去掉该叶子的二叉树有N − 1个点,数目为CatalanN−1

对于一个N − 1个点的二叉树,考虑有多少个空位可以放。总共有2 × (N − 1)个空位,但是有N − 2个点已经占据了一个空位,所以有N个空位可以添加叶子

两个方案数相乘,再除以CatalanN,化简一下发现答案是 \(\frac{n(n+1)}{4n-2}\)

posted on 2018-08-22 21:43  autoint  阅读(139)  评论(0编辑  收藏  举报

导航