Pagini recente » Cod sursa (job #2884545) | Cod sursa (job #1821095) | Cod sursa (job #1716301) | Cod sursa (job #2201723) | Cod sursa (job #1015051)
#include <iostream>
#include <fstream>
#include <iomanip>
#include <vector>
#include <algorithm>
using namespace std;
ifstream f ("dezastru.in");
ofstream g ("dezastru.out");
int n, m, t;
float probabilitate;
float v[30];
vector <int> sol;
void citeste ()
{
f>>n>>m;
for (int i=1; i<=n; i++) {f>>v[i]; sol.push_back(i);}
}
void adauga (float valoare)
{
t++;
// float p=1;
//for (int i=1; i<=m; i++) p=p*v[sol[i]];
// probabilitate+=p;
probabilitate+=valoare;
}
void genereaza ( )
{
int t=0;
float p;
do
{
t++; p=1;
for (int i=0; i<m; i++) p=p*v[sol[i]];
// for (int i=0; i<n; i++) cout<<sol[i];
// cout<<endl;
probabilitate+=p;
}
while (next_permutation(sol.begin (), sol.end ()));
probabilitate=probabilitate/t*1.0;
}
int main ()
{
citeste ();
genereaza ();
// probabilitate/=t*1.0;
g<<fixed<<setprecision(6)<<probabilitate<<'\n';
return 0;
}