http://lightoj.com/volume_showproblem.php?problem=1104
求一年为n天时,多少个人可以使得出现生日同一天的一对的概率>=0.5.
看T这么大,感觉也要预处理,然而头发都快挠没了都想不出。
结果题解告诉我由于题目告诉了我们人数很少,直接从2开始枚举即可。
卧佛了。。
#include<bits/stdc++.h>
#define eps 1e-8
using namespace std;
int n,ans,cas;
int jc;
inline void prework()
{
scanf("%d",&n);
}
inline void mainwork()
{
if(n==1)
{
ans=1;
return;
}
double tmp=1.0;
for(ans=1;ans<=n;ans++)
{
tmp*=1.0*(n-ans+1)/n;
if(tmp<0.5+eps)
{
ans-=1;
return;
}
}
}
inline void print()
{
++cas;
printf("Case %d: %d\n",cas,ans);
}
int main()
{
int t;
scanf("%d",&t);
for(int i=1;i<=t;i++)
{
prework();
mainwork();
print();
}
return 0;
}
本文探讨了一道经典的概率论问题——生日悖论,通过枚举法计算在一年为n天时,至少两人同一天生日的概率大于等于0.5所需的人数。使用C++实现,展示了如何逐步逼近目标概率值。
365

被折叠的 条评论
为什么被折叠?



