[CF453A] Little Pony and Expected Maximum

[CF453A] Little Pony and Expected Maximum - 概率,组合

Description

这个骰子有M面:骰子的第一面有一个点,第二面有两个点,以此类推,第m面含有M点。当掷骰子时,每一面都有1/m的可能性出现,并且每次投掷的概率都是都是独立的。请你帮助她计算掷N次骰子后每次得到的点数中最大值的期望。

Solution

要计算最大值为 i 个概率,我们可以先计算最大值不超过 i 个概率,然后做差即可

#include <bits/stdc++.h>
using namespace std;

#define int long long

signed main()
{
    ios::sync_with_stdio(false);
    int n, m;
    cin >> m >> n;
    vector<double> a(m + 2);
    for (int i = 1; i <= m; i++)
        a[i] = pow(1.0 * i / m, n);
    for (int i = m; i >= 1; i--)
        a[i] = a[i] - a[i - 1];
    double ans = 0;
    for (int i = 1; i <= m; i++)
        ans += a[i] * i;
    cout << fixed << setprecision(12) << ans; 
}
原文地址:https://www.cnblogs.com/mollnn/p/14419693.html