Здравствуйте! Стыд и срам, но что поделать :-)
Все знают формулу вероятности суммы совместных независимых событий:
P(A+B) = P(A)+P(B)-P(A)*P(B)
есть формула для суммы n событий, которая строится по аналогии:
Т.к. события независимые, то все вероятности произведений равны произведениям вероятностей.
не понимаю, как её запрограммировать. Т.е. задача — написать функцию, которая принимает в качестве аргумента массив вероятностей A1...An, собственно количество n, и которая возвращает вероятность суммы.
Понимаю C++, Delphi :-)
Заголовок, очевидно такой:
float getChanceSumm(float * arr, int n){
//OMG
}
Задачу можно свести к написанию другой функции — получение суммы всех сочетаний из k элементов без повторений, но от этого не легче.
Пипл, хэлп! :-) Заранее спасибо. В пятницу мозги уже не те. Надеюсь только у меня
UPD: суммы, которые в общей формуле идут не по всем индексам, а только по не повторяющимся.
UDP2:
Благодаря подсказке уважаемого
Ents получилась такая простая функция:
float getSummChance(float * arr, int num){
float res,temp;
if (num==1){
res = arr[0];
}else
if (num==2) {
res = arr[0]+arr[1] - arr[0]*arr[1];
}else{
temp = getSummChance(arr,num-1);
res = arr[num-1]+temp - arr[num-1]*temp;
}
return res;
}
Может еще кому-нибудь в какую-нибудь тяпницу пригодится вычислить вероятность суммы совместных независимых событий, так что не смотря на то, что этот вопрос — позор моей лысой голове, я все же не буду его удалять :-)