[BZOJ4001] 概率论(生成函数)

本文探讨了含n个节点的二叉树中叶子节点的期望个数问题,通过生成函数的方法推导出解决方案,并给出了具体公式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Problem

求一个含有nnn个节点的二叉树的叶子节点的期望个数。

Data constraint

n≤109n\le 10^9n109

Solution

考虑h(n)h(n)h(n)表示有nnn个节点的二叉树个数,f(n)f(n)f(n)表示nnn个节点的二叉树叶子节点个数和,那么所求即为h(x)f(x)\frac{h(x)}{f(x)}f(x)h(x)

然后考虑这两个的生成函数,分别设为H(x),F(x)H(x),F(x)H(x),F(x).

枚举左子树大小iii,然后fff是根据左右子树叶子节点对称,所以有Hn=∑i=0n−1Hi⋅Hn−i−1H_n = \sum_{i=0}^{n-1}H_i \cdot H_{n-i-1}Hn=i=0n1HiHni1fn=2∑i=0n−1fi⋅Hn−i−1f_n = 2\sum_{i=0}^{n-1} f_i \cdot H_{n-i-1}fn=2i=0n1fiHni1

那么可以得出H(x)=xH2(x)+1H(x)=xH^2(x)+1H(x)=xH2(x)+1F(x)=2xH(x)+xF(x)=2xH(x)+xF(x)=2xH(x)+x

解方程得到:
H(x)=1±1−4x2x H(x) = \frac{1 \pm \sqrt{1-4x}}{2x}H(x)=2x1±14x

然后对解求极限,发现因为H(0)=1H(0)=1H(0)=1,且

lim⁡x→0+1+1−4x2x=+∞\lim_{x \rightarrow 0^+} \frac{1 + \sqrt{1 - 4x}}{2x} = +\inftyx0+lim2x1+14x=+lim⁡x→0+1−1−4x2x=1\lim_{x \rightarrow 0^+} \frac{1 - \sqrt{1 - 4x}}{2x} = 1x0+lim2x114x=1

所以解是H(x)=1−1−4x2xH(x)=\frac{1 - \sqrt{1-4x}}{2x}H(x)=2x114x,然后可以得出F(x)=x1−4xF(x)=\frac{x}{\sqrt{1-4x}}F(x)=14xx.

然后根据广义二项式定理展开1−4x\sqrt{1-4x}14x,可以得到1−4x=(1−4x)12=∑i=0∞(12i)(−4x)i\sqrt{1-4x} = \left (1-4x \right )^{\frac{1}{2}} = \sum_{i=0}^{\infty}{\frac{1}{2} \choose i}(-4x)^i14x=(14x)21=i=0(i21)(4x)i

考虑第nnn项系数,那么有:(−4)n(12n)=(−4)n12⋅(12−1)⋅(12−2)⋯(12−n+1)1⋅2⋅3⋯n(-4)^n { \frac{1}{2} \choose n } = (-4)^n \frac{\frac{1}{2}\cdot \left( \frac{1}{2} -1 \right)\cdot \left( \frac{1}{2} -2 \right)\cdots \left( \frac{1}{2} - n + 1 \right)}{1\cdot2\cdot3\cdots n}(4)n(n21)=(4)n123n21(211)(212)(21n+1)
化简得到−12n−1(2nn)-\frac{1}{2n-1}{{2n} \choose n}2n11(n2n)

于是带入H(x)H(x)H(x)可以得到,H(x)=1−1−4x2x=1+∑i=0∞12i−1(2ii)xi2x=∑i=1∞12i−1(2ii)xi−12H(x) = \frac{1-\sqrt{1-4x}}{2x} =\frac{1+\sum_{i=0}^{\infty}\frac{1}{2i-1}{{2i} \choose i} x^i}{2x} =\frac{\sum_{i=1}^{\infty}\frac{1}{2i-1}{{2i} \choose i} x^{i-1}}{2}H(x)=2x114x=2x1+i=02i11(i2i)xi=2i=12i11(i2i)xi1
化简可以得到H(x)=∑i=0∞1n+1(2ii)xiH(x)=\sum_{i=0}^{\infty}\frac{1}{n+1}{{2i} \choose i} x^iH(x)=i=0n+11(i2i)xi

于是我们得到Catalan数第nnn项为1n+1(2nn)\frac{1}{n+1}\binom{2n}{n}n+11(n2n)

回到原问题,类似的,我们考虑把F(x)F(x)F(x)用广义二项式定理展开,可以得到F(x)=x∑i=0∞(−12i)(−4x)iF(x)=x\sum_{i=0}^{\infty}\binom{-\frac{1}{2}}{i}(-4x)^iF(x)=xi=0(i21)(4x)i

与上面类似,最终可以得到fn=(2n−2n−1)f_n=\binom{2n-2}{n-1}fn=(n12n2)

于是所求为h(x)f(x)=n(n+1)2(2n−1)\frac{h(x)}{f(x)}=\frac{n(n+1)}{2(2n-1)}f(x)h(x)=2(2n1)n(n+1).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值