题意:假设一年有n天,现在你要邀请一些人来party
那么至少邀请几个人,可以保证party中至少两个人同一天生日的概率大于等于0.5?
思路:
转化一下题意:
求所有人生日都不同的概率小于等于0.5(那么至少两个人同一天就是大于等于0,5),
假如一年365天.那么10个人全都不同天生日的概率就是
366/366 * 365/366 * 364/366 .... * 357/366;
就可以得到公式了;
所以通过累乘直到概率小于等于0.5,算出人数,即累乘的项数。
参考博客:http://blog.youkuaiyun.com/yeyeyeguoguo/article/details/46365917
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int n;
int main()
{
int t;
int cas = 1;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
double res = 1;
int i;
for(i = n - 1; i >= 1; i--)
{
double tmp = i;
res *= (tmp / n);
if(res <= 0.5)
break;
}
printf("Case %d: %d\n",cas++, n - i);
}
}