题目描述
HKE最近编写了一个函数 rand(l,r),其中 l,r 为正整数且 l≤r。这个函数会等概率返回区间 [l,r] 中任意一个正整数。然后,他又编写了一个函数:
这段代码用pascal写起来就是:
现在给定一个正整数 n,请问 work(n) 的返回值的期望值是多少?
期望的定义:假设 work(n) 返回的所有可能的值为 x1,x2,…,xk,它们出现的概率分别为 p1,p2,…,pk,则期望为:
E=i=1∑kxipi
输入格式
一个正整数 n
输出格式
一个实数,表示 work(n) 的期望值。保留 5 位小数。
提示
【样例 1 解释】
work(2) 有 1/2 的概率返回 1,有 1/4 的概率返回 2,有 1/8 的概率返回 3 ……
则期望为 1/2+2/4+3/8+⋯=2
【数据范围】
对于 30% 的数据,n≤9;
对于 50% 的数据,n≤1000;
对于 70% 的数据,n≤1000000;
对于 100% 的数据,1≤n<231。