【做题记录】TJOI2015 概率论
-
【\(\text{TJOI2015}\)】概率论
- 算法:生成函数
题目:
对于一棵随机生成的 \(n\) 个结点的有根二叉树(所有互相不同构的形态等概率出现),求它的叶子节点数的期望是多少。
题解:
设 \(p(n)\) 表示有 \(n\) 个节点的二叉树的个数,显然 \(p(0) = 1\)。
设 $f(n) $表示 \(n\) 个节点的二叉树叶子节点的个数,显然 \(f_0 = 0,f_1 = 1\)。
那么 \(ans = \dfrac{f_i}{p_i}\)。
- 对于 \(p_i\),由于左右的子树都是二叉树,所以枚举左右子树的点数:
\[p_n = \sum_{i = 0}^{n - 1}p_i p_{n - i - 1}
\]
即卡特兰数,通项为 \(\dfrac{\begin{pmatrix}2n\\n\end{pmatrix}}{n + 1}\)
- 对于 \(f_i\),枚举左右子树的大小,由 \(p\) 推出,且左右对称所以最后答案 \(\times 2\)。
\[f_n = 2\sum_{i = 0}^{n - 1}f_i\times p_{n - i - 1}
\]
不妨设 \(A(x)\) 为 \(p\) 的生成函数,\(B(x)\)为 \(f\) 的生成函数。
易知
\[A(x)=xA^2(x) + 1,B(x) = 2xA(x)B(x) + x
\]
对于 \(A(x)\) 它的封闭形式为 \(\dfrac{1\pm\sqrt{1-4x}}{2x}\)。(求根公式)
检验,易知 \(\dfrac{1+\sqrt{1-4x}}{2x}\) 不行,舍去。
有 \(B(x) = x \times (1 - 4x)^{-0.5}\)
\[\therefore (xA(x))'=\frac 1{\sqrt{1-4x}}=\dfrac{B(x)}x
\]
对 \(xA(x)\)的每一项求导,
即 \((n + 1)p_nx^n\),
\(=\dfrac{f_{n + 1}x^{n + 1}}{x} = f_{n + 1}x^n\)
\(\therefore f_{n + 1} = (n+1)p_n\)
\(\therefore f_n=p_{n-1}\)
\[\therefore ans=\dfrac{n(n+1)}{2(2n-1)}
\]