P3978 [TJOI2015] 概率论

题目描述

为了提高智商,ZJY 开始学习概率论。有一天,她想到了这样一个问题:对于一棵随机生成的 n 个结点的有根二叉树(所有互相不同构的形态等概率出现),它的叶子节点数的期望是多少呢?

判断两棵树是否同构的伪代码如下:

算法 1 ​Check(T1,T2)

        Require:  两棵树的节点                                if  T1=null or T2=null then 

                        return  T1=null and T2=null

                        else

                                return Check(T1→leftson,T2→leftson) 

                                        and Check(T1→rightson,T2→rightson)

                        endif​​

输入格式

输入一个正整数 n,表示有根树的结点数。

输出格式

输出这棵树期望的叶子节点数,要求误差小于 10^{-9}

输入输出样例

输入 #1

1

输出 #1

1.000000000

输入 #2

3

输出 #2

1.200000000

说明/提示

数据范围

对于 30% 的数据,1≤n≤10。

对于 70% 的数据,1≤n≤100。

对于 100% 的数据,1≤n≤109。

思路

打表+数学

没啥好说的

代码也很短

但是一定要开long double

代码

#include
using namespace std;
int main()
{
    long double n;
    cin>>n;
    cout<

AC记录

你可能感兴趣的:(概率论)