codeforces——Little Pony and Expected Maximum
1 /* 2 我们枚举每次选择最大数值的情况:m个数, 投掷n次 3 最大值是1: 1种 4 2: 2^n-1 5 3: 3^n-2^n 6 ..... 7 m: m^n-(m-1)^n 8 9 所以最后的结果=sum((k/m)^n - ((k-1)/m)^n) (1<=k<=m) 10 不要这样求(k^n/m^n)数据可能会很大! 11 */ 12 #include<iostream> 13 #include<cstdio> 14 #include<cmath> 15 using namespace std; 16 17 int main(){ 18 int n, m; 19 20 while(cin>>m>>n){ 21 double sum, cur=pow(1.0/m, n), nt; 22 sum=cur; 23 for(int i=2; i<=m; ++i){ 24 nt=pow(i*1.0/m, n); 25 sum+=(nt-cur)*i; 26 cur=nt; 27 } 28 printf("%.12lf\n", sum); 29 } 30 return 0; 31 }
本文来自博客园,作者:hjzqyx,转载请注明原文链接:https://www.cnblogs.com/hujunzheng/p/3886481.html