给你一年的天数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 ",cas,i); 18 break; 19 } 20 } 21 } 22 return 0; 23 }