Нужно посчитать вероятность совпадения 2 чисел (похожее парадокс дней рождения) методом Монте-Карло. Вроде делаю правильно, но правильная вероятность не получается, что нужно подправить?
int main() {
int amount;
int count = 0;
float experiment;
cin >> people;
cin >> experiment;
int match[people + 1];
for (int k = 1; k < (people + 1); k++) {
match[k] = rand() % 365 + 1;
}
for (int i = 0; i < (people + 1); i++) {
for (int j = 0; j < (people + 1); j++) {
if (match[i] == match[j]) {
count++;
}
}
}
cout << "Result:" << count / experiment;
return 0;
}
Проверил на Dev - работает
#include <iostream>
#include <stdlib.h>
int main() {
int people,i,j;
int count = 0;
float experiment;
std::cin >> people;
std::cin >> experiment;
int birthday[people];
count = 0;
for(int n=0;n<experiment;n++){
// Формируем случайную группу
for (int k = 0; k < people; k++) {
birthday[k] = rand() % 365 + 1;
//std::cout<<birthday[k]<<"\n";
}
// Ищем совпадение ДР
for (i = 0; i < people; i++)
for(j=i+1;j<people;j++)
if (birthday[i] == birthday[j]) {
count++;
i=people;//Остановка цикла
j=people;//проверок совпадений
}
}
std::cout << "Result:" << count / experiment;
return 0;
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости