Pagini recente » Cod sursa (job #2751860) | Cod sursa (job #2253802) | Cod sursa (job #2336315) | Cod sursa (job #1917389) | Cod sursa (job #416521)
Cod sursa(job #416521)
#include<stdio.h>
const int N_max=26;
int n,k,st[N_max],viz[N_max],nr=0;
float pb[N_max],sum=0,prod;
void bkt(int p)
{
int i;
if(p==k+1)
{//calc probabilitate ,actualizeaza suma
nr++;prod=1;
for(i=1;i<=k;++i)
prod*=pb[st[i]];
sum+=prod;
}
else
{
for(i=1;i<=n;++i)
if(viz[i]==0 && st[p-1]<i)
{
viz[i]=1;
st[p]=i;
bkt(p+1);
viz[i]=0;
}
}
}
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("%f",&pb[i]);
bkt(1);
printf("%f\n",sum/nr);
return 0;
}