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}\)。
静渊以有谋,疏通而知事。