[TJOI2015] 概率论

一棵随机生成的 (n) 个结点的有根二叉树(所有互相不同构的形态等概率出现)的叶子节点数的期望。(n leq 10^9)

Solution

(n) 个点的二叉树个数即 Catalan 数 (f(n)=frac{C_{2n}^n}{n+1})

(g(n))(n) 个点的所有二叉树的叶子个数和,找规律得 (g(n)=nf(n-1))

Proof. 对于 (n) 个点,(k) 个叶子的二叉树,删掉任意一个叶子可以得到 (k)(n-1) 个点的二叉树,这些二叉树每个有 (n) 个位置可以挂一个新的叶子

所求为

[frac{g_n}{f_n}=frac{nf_{n-1}}{f_n}=frac{n(n+1)}{2(2n-1)} ]

#include <bits/stdc++.h>
using namespace std;
double n;
signed main() {
    cin>>n;
    printf("%.10lf
",n*(n+1)/2/(2*n-1));
}
原文地址:https://www.cnblogs.com/mollnn/p/12363942.html