lightoj 1104 Birthday Paradox 概率

给你一年的天数n,问不算自己,至少邀请多少人,有不小于0.5的概率,有人撞生日。

最多邀请多少人,有不大于0.5的概率,没人撞生日是等价的。

邀请第1个人,撞生日概率是(n - 1) / n。

邀请第2个人,撞生日概率是(n - 1) / n  *  (n - 2) / n。

以此类推计算即可。

 1 #include <cstdio>
 2 using namespace std;
 3 double P;
 4 int T,n,cas;
 5 int main()
 6 {
 7     for (scanf("%d",&T);T != 0;T--)
 8     {
 9         cas++;
10         P = 1.0;
11         scanf("%d",&n);
12         for (int i = 1;;i++)
13         {
14             P *= (double)(n - i) / n;
15             if (P <= 0.5)
16             {
17                 printf("Case %d: %d\n",cas,i);
18                 break;
19             }
20         }
21     }
22     return 0;
23 }

猜你喜欢

转载自www.cnblogs.com/iat14/p/11410495.html