Pagini recente » Cod sursa (job #3226415) | Cod sursa (job #1555460) | Cod sursa (job #2937530) | Cod sursa (job #3206917) | Cod sursa (job #2165027)
#include <fstream>
#include <iostream>
#include <bitset>
#include <vector>
using namespace std;
int N, p, v[26],ct=0;
double a[26];
vector<double> aa;
double probabilitate;
void permutari(int k)
{
if(k == p + 1)
{
double produs=1;
for(int i = 1; i<= p; ++i)
produs*=a[v[i]];
aa.push_back(produs);
}
else
{
for(int x = 1; x<= N; ++x)
{
bitset<1> gasit;
gasit[0]=0;
for(int i = 1; i<= k - 1; ++i)
{
if(v[i]==x)
gasit[0]=1;
}
if(gasit[0]==0)
{
v[k]=x;
permutari(k+1);
}
}
}
}
int main()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
cin >> N >> p;
for(int i = 1; i<= N;++i)
cin >> a[i];
permutari(1);
for(int i = 0; i< aa.size();++i)
probabilitate+= aa[i]/ aa.size();
cout<<probabilitate;
return 0;
}