LightOJ

题意:有一个n面筛子,每次扔一下,每面概率相同,要求扔出n面的期望次数

题解:和第三篇论文里的例题一样,算从第i个到第i+1个的概率是(n-i)/n,n面中找n-i个没有扔到过的,期望是n/(n-i),总的期望就是(1/1+1/2+...+1/n)*n

#include<bits/stdc++.h>
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define pi acos(-1.0)
#define ll long long
#define mod 1000000007
#define C 0.5772156649
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1
#define pii pair<int,int>

using namespace std;

const double g=10.0,eps=1e-12;
const int N=100+10,maxn=10000+10,inf=0x3f3f3f3f;


int main()
{
    int t,res=0;
    scanf("%d",&t);
    while(t--)
    {
        double n,ans=0;
        scanf("%lf",&n);
        for(int i=1;i<=n;i++)
            ans+=1.0/i;
        printf("Case %d: %.10f
",++res,ans*n);
    }
    return 0;
}
/********************

********************/
View Code
原文地址:https://www.cnblogs.com/acjiumeng/p/7998024.html