#P5147. 随机数生成器
随机数生成器
题目描述
HKE最近编写了一个函数 ,其中 为正整数且 。这个函数会等概率返回区间 中任意一个正整数。然后,他又编写了一个函数:
int work(int x){
if(x==1) return 0;
else return work(rand(1,x))+1;
}
这段代码用pascal写起来就是:
function work(x:integer):integer;
begin
if x=1 then exit(0);
else exit(work(rand(1,x))+1);
end;
现在给定一个正整数 ,请问 的返回值的期望值是多少?
期望的定义:假设 返回的所有可能的值为 ,它们出现的概率分别为 ,则期望为:
输入格式
一个正整数
输出格式
一个实数,表示 的期望值。保留 位小数。
2
2.00000
3
2.50000
100000
13.09014
提示
【样例 解释】
有 的概率返回 ,有 的概率返回 ,有 的概率返回 ……
则期望为
【数据范围】
对于 的数据,;
对于 的数据,;
对于 的数据,;
对于 的数据,。