【FZU2278】YYS

 题意

    这里有n种卡片,如果你想得到一张新的卡片,你需要花费W枚硬币来抽一张卡片。每次只能抽一张。所有的卡片出现的概率都是1/n,你每天可以得到1枚硬币。初始时候没有硬币也没有卡片。每W天,你就会抽一张卡片用这W枚硬币。在这个问题中,我们定义 W=(n-1)! 现在请你计算收集齐所有卡片的天数期望是多少。

分析

参考博客https://blog.csdn.net/qq_36553623/article/details/76696158

   假设我们已经有了a张照片,想要得到第a+1张,我们抽中一张新卡的概率为 (n-a)/n 那么期望进行的次数是 1/p=n/(n-a)。可以通过等比数列求和再取一下极限得到这个式子。

   有了这个式子就很好做了啊,从0到n-1枚举a,然后把他们的期望次数加起来。因为将这个问题分成n个独立事件去考虑,总期望等于各个期望的和。

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;
int n,T,w;
double ans;
int main(){
    scanf("%d",&T);
    for(int t=1;t<=T;t++){
        ans=0;
        w=1;
        scanf("%d",&n);
        for(int i=1;i<n;i++)w=w*i;
        for(int i=0;i<n;i++){
            ans+=(double)n/(n-i);
        }
        ans=ans*w;
        printf("%.1f
",ans);
    }
return 0;
}
View Code
原文地址:https://www.cnblogs.com/LQLlulu/p/8955401.html