Codeforces453 A. Little Pony and Expected Maximum(数学期望)

题意:

在这里插入图片描述

解法:

P ( X < = k ) = k n m n P ( X = k ) = P ( X < = k ) − P ( X < = k − 1 ) = k n m n − ( k − 1 ) n m n = k n − ( k − 1 ) n m n E ( X ) = ∑ k = 1 m k ∗ P ( X = k ) = ∑ k = 1 m k ∗ k n − ( k − 1 ) n m n = ∑ k = 1 m k ∗ [ ( k m ) n − ( k − 1 m ) n ] 缺 少 最 后 一 部 化 简 就 会 w a , 因 为 k n 爆 d o u b l e 了 . P(X<=k)=\frac{k^n}{m^n}\\ P(X=k)=P(X<=k)-P(X<=k-1)\\ =\frac{k^n}{m^n}-\frac{(k-1)^n}{m^n}\\ =\frac{k^n-(k-1)^n}{m^n}\\ E(X)=\sum_{k=1}^mk*P(X=k)\\ =\sum_{k=1}^mk*\frac{k^n-(k-1)^n}{m^n}\\ =\sum_{k=1}^mk*[(\frac{k}{m})^n-(\frac{k-1}{m})^n]\\ 缺少最后一部化简就会wa,因为k^n爆double了. P(X<=k)=mnknP(X=k)=P(X<=k)P(X<=k1)=mnknmn(k1)n=mnkn(k1)nE(X)=k=1mkP(X=k)=k=1mkmnkn(k1)n=k=1mk[(mk)n(mk1)n]wa,kndouble.

code:

#include <bits/stdc++.h>
using namespace std;
const int maxm=1e6+5;
int m,n;
signed main(){
    
    
    cin>>m>>n;
    double ans=0;
    for(int i=1;i<=m;i++){
    
    
        ans+=(pow(i*1.0/m,n)-pow((i-1)*1.0/m,n))*i;
    }
    printf("%.10f\n",ans);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_44178736/article/details/112782752