Light OJ-----1104数学题

来源:互联网 发布:科技网络报修电话 编辑:程序博客网 时间:2024/05/23 16:33

1104 - Birthday Paradox
  PDF (English)StatisticsForum
Time Limit: 2 second(s)Memory Limit: 32 MB

Sometimes some mathematical results are hard to believe. Oneof the common problems is the birthday paradox. Suppose you are in a partywhere there are23 people including you. What is the probability that atleast two people in the party have same birthday? Surprisingly the result ismore than0.5. Now here you have to do the opposite. You have given thenumber of days in a year. Remember that you can be in a different planet, forexample, in Mars, a year is669 days long. You have to find the minimumnumber of people you have to invite in a party such that the probability of atleast two people in the party have same birthday is at least0.5.

Input

Input starts with an integer T (≤ 20000),denoting the number of test cases.

Each case contains an integer n (1 ≤ n ≤ 105)in a single line, denoting the number of days in a year in the planet.

Output

For each case, print the case number and the desired result.

Sample Input

Output for Sample Input

2

365

669

Case 1: 22

Case 2: 30

虽然知道要求全部不相同的概率,但是死活推不出来公式,数学真是硬伤

看了题解才发现如此简单

拿365来说,除了自己,再邀请一个人完全不同的概率是1*364/365

邀请两个人完全不同的概率是1*(364/365)(363/365)

……

递推即可

#include<cstdio>#include<cstring>#include<algorithm>#define ll long long#define maxn 1010#define inf 0x3f3f3f3f#define mes(a, b) memset(a, b, sizeof(a)using namespace std;int main(){    int t, n, flag, kcase = 1;    scanf("%d", &t);    while(t--){        scanf("%d", &n);        double rat = 1;        for(int i = 1; ; i++){            rat *= 1.0*(n-i)/n;            if(rat <= 0.5){                printf("Case %d: %d\n", kcase++, i);                break;            }        }    }    return 0;}

0 0
原创粉丝点击