您的位置:首页 > 其它

codeforces——Little Pony and Expected Maximum

2014-08-02 09:03 447 查看
/*
我们枚举每次选择最大数值的情况:m个数, 投掷n次
最大值是1:    1种
2:    2^n-1
3:     3^n-2^n
.....
m:     m^n-(m-1)^n

所以最后的结果=sum((k/m)^n - ((k-1)/m)^n)  (1<=k<=m)
不要这样求(k^n/m^n)数据可能会很大!
*/
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;

int main(){
int n, m;

while(cin>>m>>n){
double sum, cur=pow(1.0/m, n), nt;
sum=cur;
for(int i=2; i<=m; ++i){
nt=pow(i*1.0/m, n);
sum+=(nt-cur)*i;
cur=nt;
}
printf("%.12lf\n", sum);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: