概述
【题目来源】:https://cn.vjudge.net/problem/LightOJ-1104
【题意】
生日悖论问题,描述了逻辑思维的悖论,23个人中任意两个人同一天生日的概率是0.507,一般的想法感觉会很荒谬。
而这些是由数学方法计算出来的。
而题意问的问题是,假如不在地球上,也就是一年的时间大小会改变,问,不低于0.5的概率下,最少多少个人同一天生日。
【思路】
根据百度百科计算公式:
第一个人的生日是 365选365
第二个人的生日是 365选364
第三个人的生日是 365选363
:
:
:
第n个人的生日是 365选365-(n-1)
所以所有人生日都不相同的概率是:
那么,n个人中有至少两个人生日相同的概率就是:
所以当n=23的时候,概率为0.507。
而我的方法是反着来的,也就是没有用1减去那个值。
【代码】
#include<iostream>
using namespace std;
int main()
{
int T,cases=1;
cin>>T;
while(T--)
{
int n;
cin>>n;
if(n==1)
{
cout<<"Case "<<cases++<<": "<<n<<endl;
continue;
}
double ans=1;
for(int i=n;i>=1;i--)
{
ans=ans*(i*1.0)/(n*1.0);
//
cout<<ans<<endl;
if(ans<=0.5)
{
cout<<"Case "<<cases++<<": "<<n-i<<endl;
break;
}
}
}
}
最后
以上就是秀丽酒窝为你收集整理的LightOJ1104---Birthday Paradox(生日悖论(概率))的全部内容,希望文章能够帮你解决LightOJ1104---Birthday Paradox(生日悖论(概率))所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复