题意
为了提高智商,ZJY 开始学习概率论。有一天,她想到了这样一个问题:对于一棵随机生成的 n 个结点的有根二叉树(所有互相不同构的形态等概率出现),它的叶子节点数的期望是多少呢?
data range: (nle 1e9)
思路
实际上我是找规律A的这道题
我们设 (f(x)) , (g(x)) 表示大小为 (x) 的所有不同构二叉树的个数和叶子节点个数和
先推 (f(x)) , (f(x)=sum_{i=0}^{n-1}f(i)f(n-i-1)) ,边界条件 (f(0)=1,f(1)=1)
然后会发现这个是卡特兰数,通项公式 (frac{{2n choose n}}{n+1})
再推(g(x)), 设 (G(x)) 为大小为 (x) 的二叉树的叶子节点个数的普通型生成函数,其中 (a_ix^i) 代表叶子节点为 (i) 的二叉树有 (a_i) 棵
在草稿纸上用 (G(x)) ,来推一下 (g(x)) ,
再放到OEIS上搜,发现是中心二项式系数,也即 ({2n-2choose n-1})多棒!
令(m=n-1)
则答案为 (frac{g(x)}{f(x)}=frac{(m+1)(m+2)}{2m+1})
但这样不够严谨,对吧
但是我也懒地写了
详细证法请见
后记
我还是推一下吧要不然对不起生成函数的标题
在推(g(x))的时候我们可以发现,实际上就是枚举左右两边的子树大小,子树的贡献是 子树的叶子节点数 乘上 另外一边的方案数。由于左右对称,要再乘2,也即 (g(x)=2sum_{i=0}^{x-1}g(i)f(n-i-1))
再设 (g) 和 (f) 的生成函数分别为 (G(x)) (F(x)) (注意,不要和上面那个我定义的(G(x)) 弄混)
易知 (F(x)) 的封闭形式为 (frac{1-sqrt{1-4x}}{2x})
根据 (g(x)) 的推导式我们可得 (G(x)=2xG(x)F(x)+x) , 所以 (G(x)=frac{x}{sqrt{1-4x}})
((xF(x))^{'}=frac{1}{sqrt{1-4x}}=frac{G(x)}{x})
对于第n项来说来说,也即((xf(n)x^n)'=(n+1)f(n)x^n=frac{g(n+1)x^{n+1}}{x}=g(n+1)x^{n})
所以(g(n)=nf(n-1)={2n-2choose n-1})
(frac{g(n)}{f(n)}=frac{n(n+1)}{2(2n+1)})