码迷,mamicode.com
首页 > 其他好文 > 详细

[TJOI2015] 概率论 - Catalan数

时间:2020-02-25 21:51:12      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:n+1   namespace   signed   ace   name   个数   space   math   isp   

一棵随机生成的 \(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*(n+1)/2/(2*n-1));
}

[TJOI2015] 概率论 - Catalan数

标签:n+1   namespace   signed   ace   name   个数   space   math   isp   

原文地址:https://www.cnblogs.com/mollnn/p/12363942.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!