Пожалуйста, кто-нибудь помагите решить задачу, очень надо для дипломной работы! Заранее всех благодарю за помощь!!!
Задача состоит в том, что бы найти вероятность совпадения хотя бы 2-х дней рождений в группе студентов из 25 человек. Модель задачи заключается в следующем необходимо присвоить какому-нибудь счетчику 0, для дальнейшего сохранения в нём результатов опыта. Вызывать функцию для выдачи 25-ти случайных чисел, потом распределить их по возвростанию и проверять на совпадения. Если совпадения имеются, прекратить проверять и в счетчике записывается еденица. И проводится следующий опыт, если совпадений не оказалось, то счетчику добавляется ноль. Потом результаты опытов делятся на общее количество опытов и получается искомая вероятность.
Пожалуйста помогите написать эту задачу на языке C++...
Помогите с задачей о совпадении дней рождения!
В каких пределах должны генерироваться даты, или просто генерировать случайные числа? Как определяется количество опытов, тоже случайным образом?
Даты дней рождений выбираются случайные числа от 1 до 365 дней в году. А количество опытов просто задаётся любое число...
mary_a87 писал(а):Даты дней рождений выбираются случайные числа от 1 до 365 дней в году. А количество опытов просто задаётся любое число...
Код: Выделить всё
#include <iostream.h>
#include <time.h>
#include <algorithm>
int getday()
{
return rand()%365+1;
}
void printday(const int * pint)
{
for(int i=0;i<25; i++)
cout<<*(pint+i)<<",";
cout<<endl;
}
void main()
{
int cnt(0);
int data[25]={0};
srand(time(0));
int exp=rand()%11+10;// 10~20 Экспериментов
for(int j=0;j<exp;j++)
{
std::generate(data,data+25,getday);//заполняем массив дней
std::sort(data,data+25);//сортируем
for(int i=0;i<24;i++)
if(data[i]==data[i+1])
{
cnt++;
printday(data);
break;
}
}
cout<<"provedeno "<<exp<<" experementov.\n"<<"sovpadeniy "<<cnt<<endl;
}
