美少女死神还我h魂图:用C++编程 请帮我写出完整的程序 谢谢

来源:百度文库 编辑:高校问答 时间:2024/04/27 19:15:22
生日问题。有人说,一个50人的班级,至少有两个人生日相同的概率为97% 请验证这一说法

假设每个人的生日在一年365天中的任何一天是等可能的,也就是都等于1/365.那么,随机选取n(n<365)个人,他们的生日各不相同的概率为:
p = ( 365*364*363*…*(365-n+1) ) / ( 365^n)
因而,n个人中至少有两个人生日相同的概率为
q = 1 - p;计算可知,当人数为50时,概率为0.970

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>

#define REPAET_TIMES 100000

void main()
{
int birthday[50];
int count=0, idx1,idx2;
srand((unsigned int)time(NULL));
//测试REPAET_TIMES次,可以自己定义更多次
for(int times=0;times<REPAET_TIMES;times++)
{
for(idx1=0;idx1<50;idx1++)
birthday[idx1]=(int)365*rand()/RAND_MAX;
for(idx1=0;idx1<49;idx1++)
for(idx2=idx1+1;idx2<50;idx2++)
if(birthday[idx1]==birthday[idx2])
{
count++;
goto continues;
}
continues:
;//just a null statement
}
printf("\n%f\n",(float)count/REPAET_TIMES);
getch();
}