题目链接:https://vjudge.net/problem/LightOJ-1248
思路:
期望等于 概率*结果,像类似这种结果为1的期望题,要灵活运用 E = 1/p 这个公式;(问的是抛色子的次数期望,你每次只抛一次,对应得结果肯定就是1)
E = 1/p 是几何分布的一个公式,代表的意义就是当一个事件的概率是 p时,进行k次试验,前k-1次出现的都是(1-p)的情况,在第k次才第一次出现p的情况,那么对应得期望就是 1/p;
假设一个3个面的色子,第一个新面的概率是1,第二个新面的概率就是 2/3,对应得期望就是 3/2 ,第三个新面的概率是 1/3,那么对应得期望就是 3/1,那么总的期望就是E(1)+E(2)+E(3);
注意:这里的E(1) 是第一次出现第一个面的期望,E(2) 是第一次出现第二个面的期望,所以总的期望就是3个面至少出现一次的期望;
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main (void)
{
int T;
scanf ("%d", &T);
for (int cas = 1; cas <= T; ++cas) {
int n;
scanf ("%d", &n);
printf ("Case %d: ", cas);
double ans = 1;
for (int i = n-1; i >= 1; --i) {
ans += n/(i*1.0);
}
printf ("%.6f\n", ans);
}
return 0;
}