给你一年的天数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 }