LightOj 1248 - Dice (III)(几何分布+期望)

题目链接:http://lightoj.com/volume_showproblem.php?problem=1248

题意:有一个 n 面的骰子,问至少看到所有的面一次的所需 掷骰子 的 次数的期望;

第一个面第一次出现的概率是p1 n/n;

第二个面第一次出现的概率是p2 (n-1)/n;

第三个面第一次出现的概率是p3 (n-2)/n;

...

第 i 个面第一次出现的概率是pi (n-i+1)/n;

先看一下什么是几何分布:

几何分布: 在第n次伯努利试验中,试验 次才得到第一次成功的机率为p。详细的说是:前k-1次皆失败,第k次成功的概率为p。

几何分布的期望E(X) = 1/p;

所以所求期望为∑1/pi = n * (1+1/2+1/3+1/4+1/5+...+1/n);

#include <cstring>
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <stack>
#include <vector>
#include <queue>
using namespace std;
#define N 105
#define met(a, b) memset(a, b, sizeof(a))
#define MOD 110119

typedef long long LL;

int main()
{
    int n;
    int T, t = 1;

    scanf("%d", &T);

    while(T--)
    {
        scanf("%d", &n);
        double sum = 0;
        for(int i=1; i<=n; i++)
            sum += 1.0/i;
        printf("Case %d: %.6f\n", t++, sum*n);
    }
    return 0;
}
View Code

 

posted @ 2016-08-10 21:43  西瓜不懂柠檬的酸  Views(237)  Comments(0Edit  收藏  举报
levels of contents