Pagini recente » Cod sursa (job #2394642) | Cod sursa (job #1568014) | Cod sursa (job #19195) | Cod sursa (job #2612461) | Cod sursa (job #416517)
Cod sursa(job #416517)
#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)
{
printf("%d ",st[i]);
prod*=pb[st[i]];
}
printf("\n");
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;
}