题意:有一个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; } /******************** ********************/