Pro
QwQ
Sol
如果投n次,最大点数是k,那么情况共有
k
n
−
(
k
−
1
)
n
k^n-(k-1)^n
kn−(k−1)n种。
若n次投掷的点数都在1到k内,共有
k
n
k^n
kn种情况。
若n次投掷的点数都在1到k-1内,共有
(
k
−
1
)
n
(k-1)^n
(k−1)n种情况。
这两个数值相减即可得到最大值是k的情况。
化简式子就可以得到答案了。
Code
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
double n , m , last , ans;
int main() {
scanf("%lf%lf",&m,&n);
for(double i=1; i<=m; i++) {
double temp = pow(i/m,n);
ans += i*(temp-last);
last = temp;
}
printf("%.12lf",ans);
return 0;
}