题目描述:
Description:
Input
输入一个正整数N,代表有根树的结点数
Output
输出这棵树期望的叶子节点数。要求误差小于1e-9
Sample Input
1
Sample Output
1.000000000
HINT
1<=N<=10^9
思路:
一眼数学期望(毕竟题目里都已经说了),那期望是什么呢???
在概率论和统计学中,数学期望(mean)(或均值,亦简称期望)是试验中每次可能结果的概率乘以其结果的总和,是最基本的数学特征之一。它反映随机变量平均取值的大小。
[ ext{——百度百科} ]
那这道题目的期望就是( ext{有n个节点的树的}frac{ ext{叶子节点总个数}}{树的个数})了。
那我们康康这里面有什么不为人知的规律吧:
树的个数就是(Cat_n)!!!
叶子节点总个数就是(Cat_{n-1} imes n)!!!
发现没???
那柿子就是(frac{Cat_{n-1} imes n}{Cat_n})
当然直接这么做是不行的,你需要把它化简成(frac{n^2 + n}{ 4n - 2})
代码:
int main()
{
cin >> n;
printf("%.9lf", (n * n + n) / (4 * n - 2)); //公式
return 0;
}