BZOJ 4001: [TJOI2015]概率论 生成函数+求导

本文探讨了$n$个点的二叉树叶子节点数目的期望值计算问题,通过生成函数的方法,推导出$f_n$和$g_n$的表达式,最终给出简洁的公式用于计算该期望值。

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

求:$n$ 个点的二叉树叶子个数期望.

设 $f_{n}$ 表示 $n$ 个点所有不同的二叉树叶子总个数,$g_{n}$ 表示 $n$ 个点不同的二叉树个数.

则有 $ans=\frac{f_{n}}{g_{n}}$

有 $g_{n}=\sum_{i=0}^{n-1}g_{i}g_{n-i-1}$

同时,这个 $g$ 的定义就是卡特兰数,所以还有 $g_{n}=\frac{\binom{2n}{n}}{n+1}$

设 $G(x)$ 表示 $g$ 的生成函数,则有 $G(x)=xG(x)^2+1$

解得 $G(x)=\frac{1- \sqrt{1-4x}}{x}$

我们将 $G(x)=\frac{1+ \sqrt{1-4x}}{x}$ 舍掉的原因是 $G(0)$ 没有任何意义(当验证生成函数的合法性时可以将 0 带入)

有 $f_{n}=2\times \sum_{i=0}^{n-1}f_{i}g_{n-i-1}$,$F(x)=2xF(x)G(x)+x^{1}$ (我们向右平移生成函数时会损失掉最低位)

解得 $F(x)=\frac{x}{\sqrt{1-4x}}$

得到 $F,G$ 的生成函数后,我们要试图寻找 $F,G$ 的关系.

有 $’(xG(x))=\frac{1}{\sqrt{1-4x}}=\frac{F(x)}{x}$

求完导后,$xG(x)$ 的第 $i$ 项为 $g_{i}\times (i+1) \times x^{i}$

$\frac{F(x)}{x}$ 中第 $i$ 项为 $f_{i+1}\times x_{i}$,故有 $g_{i}\times (i+1)=f_{i+1}$

所以最终答案就是 $\frac{g_{n-1}\times n}{g_{n}}$    

#include <iostream>   
#include <bits/stdc++.h>       
#define ll long long 
using namespace std;
int main() 
{  
    double n;  
    scanf("%lf",&n); 
    printf("%.10f",(double)n*(n+1)/(2*(2*n-1)));   
    return 0; 
}

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值