Pagini recente » Cod sursa (job #3182387) | Cod sursa (job #2534381) | Cod sursa (job #320119) | Cod sursa (job #2684988) | Cod sursa (job #1059134)
#include <stdio.h>
int n, k;
int nc;
double p[26], pa[8000000];
void genereaza_combinari();
double calculeaza_probabilitate();
int main()
{
freopen("dezastru.in", "r", stdin);
freopen("dezastru.out", "w", stdout);
scanf("%d %d", &n, &k);
for (int i = 1; i <= n; ++i)
{
scanf("%lf", &p[i]);
}
genereaza_combinari(1, 1.0f);
double prob = calculeaza_probabilitate();
printf("%.6lf", prob);
return 0;
}
void genereaza_combinari(int x, double prob)
{
if (x < k)
{
for (int i = 1; i <= n; ++i)
{
genereaza_combinari(x+1, prob * p[i]);
}
}
else
{
pa[++nc] = prob;
}
}
double calculeaza_probabilitate()
{
double p = 0.0;
for (int i = 1; i <= nc; ++i)
{
p += (pa[i] / nc);
}
return p;
}