TJOI 2015 概率论 题解

题目传送门

题目大意: 问一棵 n n n 个节点的二叉树的叶子结点数的期望。

题解

显然最后答案为 所有情况下叶子结点的总数除以树的形态数

第二个部分就是卡特兰数,接下来求第一个部分。

f [ i ] f[i] f[i] 表示 i i i 个节点的树的所有形态下的叶子结点总数, g [ i ] g[i] g[i] 表示 i i i 个节点的树的形态数。

那么有( i i i 是在枚举一个子树的大小):
f [ n ] = ∑ i = 0 n − 1 2 f [ i ] g [ n − i − 1 ] f[n]=\sum_{i=0}^{n-1}2f[i]g[n-i-1] f[n]=i=0n12f[i]g[ni1]

2 2 2 是因为这个大小为 i i i 的子树可以是左子树也可以是右子树。

发现这个有点像卷积的形式,他们的下标相加为 n − 1 n-1 n1,是个定值,那么考虑生成函数。

F ( x ) = ∑ i = 0 f [ i ] x i , G ( x ) = ∑ i = 0 g [ i ] x i F(x)=\sum\limits_{i=0} f[i]x^i,G(x)=\sum\limits_{i=0}g[i]x^i F(x)=i=0f[i]xi,G(x)=i=0g[i]xi,那么有:
F = 2 F G x F=2FGx F=2FGx

但是我们发现, f [ 1 ] = 2 f [ 0 ] g [ 0 ] f[1]=2f[0]g[0] f[1]=2f[0]g[0],而 f [ 0 ] = g [ 0 ] = 0 f[0]=g[0]=0 f[0]=g[0]=0,这并不能求出 f [ 1 ] = 1 f[1]=1 f[1]=1 这个正确的结果,所以我们还需要给 F F F 补上 f [ 1 ] f[1] f[1] 所在的那一项,即:
F = 2 F G x + x F=2FGx+x F=2FGx+x

因为 g [ i ] g[i] g[i] 是卡特兰数,于是我们知道 G = 1 − 1 − 4 x 2 x G=\frac {1-\sqrt {1-4x}} {2x} G=2x114x (不明白的请看这里)。

带进去算一波,可以得到 F = x 1 − 4 x F=\frac x {\sqrt{1-4x}} F=14x x

我们不妨将分子部分的 x x x 给除掉,那么相当于将 F F F 的系数整体左移了一位,我们原先要求 F F F 的第 n n n 位的系数,现在变成求 n − 1 n-1 n1 位的系数。

因为 1 1 − 4 x = ( 1 − 4 x ) − 1 2 \frac 1 {\sqrt {1-4x}}=(1-4x)^{-\frac 1 2} 14x 1=(14x)21,不妨用广义二项式定理搞他一波:
[ x n − 1 ] ( 1 − 4 x ) − 1 2 = ( − 1 2 n − 1 ) ( − 4 ) n − 1 = ( − 1 2 ) ( − 1 2 − 1 ) . . . ( − 1 2 − ( n − 1 ) + 1 ) ( n − 1 ) ! ( − 4 ) n − 1 = ( − 1 2 ) ( − 3 2 ) . . . ( − 1 + 2 n − 4 2 ) ( n − 1 ) ! ( − 1 ) n − 1 4 n − 1 = ( − 1 ) n − 1 ∏ i = 1 n − 1 ( 2 i − 1 ) ( n − 1 ) ! 2 n − 1 ( − 1 ) n − 1 4 n − 1 = ( 2 n − 3 ) ! ( n − 1 ) ! 2 n − 1 ∏ i = 2 n − 1 ( 2 i − 2 ) 4 n − 1 = ( 2 n − 3 ) ! ( n − 1 ) ! 2 n − 1 × 2 n − 2 ( n − 2 ) ! 4 n − 1 = 2 ( 2 n − 3 ) ! ( n − 1 ) ! ( n − 2 ) ! \begin{aligned} [x^{n-1}](1-4x)^{-\frac 1 2}&={{-\frac 1 2}\choose{n-1}}(-4)^{n-1}\\ &=\frac {(-\frac 1 2)(-\frac 1 2 -1)...(-\frac 1 2-(n-1)+1)} {(n-1)!}(-4)^{n-1}\\ &=\frac {(-\frac 1 2)(-\frac 3 2)...(-\frac {1+2n-4} 2)} {(n-1)!}(-1)^{n-1}4^{n-1}\\ &=\frac {(-1)^{n-1}\prod_{i=1}^{n-1}(2i-1)} {(n-1)!2^{n-1}}(-1)^{n-1}4^{n-1}\\ &=\frac {(2n-3)!} {(n-1)!2^{n-1}\prod_{i=2}^{n-1}(2i-2)}4^{n-1}\\ &=\frac {(2n-3)!} {(n-1)!2^{n-1} \times 2^{n-2}(n-2)!}4^{n-1}\\ &=\frac {2(2n-3)!} {(n-1)!(n-2)!} \end{aligned} [xn1](14x)21=(n121)(4)n1=(n1)!(21)(211)...(21(n1)+1)(4)n1=(n1)!(21)(23)...(21+2n4)(1)n14n1=(n1)!2n1(1)n1i=1n1(2i1)(1)n14n1=(n1)!2n1i=2n1(2i2)(2n3)!4n1=(n1)!2n1×2n2(n2)!(2n3)!4n1=(n1)!(n2)!2(2n3)!

最后的答案是:
[ x n ] F ( x ) g [ n ] = 2 ( 2 n − 3 ) ! ( n − 1 ) ! ( n − 2 ) ! ( 2 n ) ! n ! ( n + 1 ) ! = 2 ( 2 n − 3 ) ! ( n − 1 ) ! ( n − 2 ) ! × n ! ( n + 1 ) ! ( 2 n ) ! = 2 n ( n − 1 ) ( n + 1 ) n 2 n ( 2 n − 1 ) ( 2 n − 2 ) = ( n + 1 ) n 2 ( 2 n − 1 ) \begin{aligned} \frac {[x^n]F(x)} {g[n]}&=\frac {\frac {2(2n-3)!} {(n-1)!(n-2)!}} {\frac {(2n)!} {n!(n+1)!}}\\ &=\frac {2(2n-3)!} {(n-1)!(n-2)!} \times\frac {n!(n+1)!} {(2n)!}\\ &=\frac {2n(n-1)(n+1)n} {2n(2n-1)(2n-2)}\\ &=\frac {(n+1)n} {2(2n-1)} \end{aligned} g[n][xn]F(x)=n!(n+1)!(2n)!(n1)!(n2)!2(2n3)!=(n1)!(n2)!2(2n3)!×(2n)!n!(n+1)!=2n(2n1)(2n2)2n(n1)(n+1)n=2(2n1)(n+1)n

代码都差不多可以不看了233:

#include <cstdio>

double n;

int main()
{
	scanf("%lf",&n);
	printf("%.9lf",(n+1.0)*n/2.0/(2.0*n-1.0));
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值