令\(f_n\)表示 \(n\) 个点的二叉树个数 , \(g_n\)表示 \(n\) 个点的所有 \(f_n\)棵二叉树的叶节点总数
\(g_n=nf_{n-1}\)
证明如下 :
对于每棵 \(n\) 个点的二叉树 , 如果里面有 \(k\) 个叶节点 , 那么我们分别把这 \(k\) 个叶子删去会得到 \(k\) 棵 \(n-1\) 个点的二叉树 ;
每棵 \(n-1\)个点的二叉树恰好有 \(n\) 个位置可以悬挂一个新的叶子 , 所以每棵 \(n-1\) 个点的二叉树被得到了 \(n\) 次 ;
即每次得到相当于一次删除操作
综上,我们即可得出结论:所有 \(n\) 个点的二叉树的叶子个数和等于 \(n-1\) 个点的二叉树个数 \(\times n%\) .
对于\(f_i\)的递推有形如卡特兰数的式子 , 即枚举左右儿子的大小
\(f_n=\sum_{i=1}^{n-1}f_if_{n-i-1}\)
通项公式 :\(f_n=\frac{\binom{2n}{n}}{n+1}=\frac{4n-2}{n+1}\)
于是答案即为 $\frac{g_n}{f_n} = \frac{nf_{n-1}}{f_n}=\frac{n(n+1)}{2(2n-1)} $
原文地址:https://www.cnblogs.com/lizehon/p/10601001.html
时间: 2024-10-08 20:13:33