Pagini recente » Cod sursa (job #1293939) | Cod sursa (job #1250150) | Cod sursa (job #2203889) | Cod sursa (job #1686960) | Cod sursa (job #1680366)
#include<iostream>
#include<fstream>
#include <iomanip>
#include <string>
#include <sstream>
using namespace std;
int N,K;
double numere[25];
int poz;
//stack<double> result;
double data[25];
double probab;
double prob1=1;
//double A[25][25];
int combinari(int n,int k)
{
if (k==0) return 1;
else if (k>n) return 0;
else return (combinari(n-1,k)+combinari(n-1,k-1));
}
/*
void combinationUtil(double numere[], double data[], int start, int end, int index, int k)
{
if (index == k) {
double prob=1;
cout << poz << ": ";
for (int j=0; j<k; j++) {
prob = prob*data[j];
cout << data[j] << " ";
}
cout << "\n";
poz++;
probab=probab+prob;
return;
}
for (int i=start; i<=end && end-i+1 >= k-index; i++)
{
data[index] = numere[i];
combinationUtil(numere, data, i+1, end, index+1, k);
}
}
*/
/*
void combinationUtil(double prob, int N, int k) {
if (k == 0) {
probab += prob;
++poz;
return;
}
if (N == k) {
for(int i = N-1; i >= 0; --i)
prob *= numere[i];
probab += prob;
++poz;
return;
}
combinationUtil(prob, N-1, k);
combinationUtil(prob*numere[N-1], N-1, k-1);
}*/
double s[30][30],a[30];
int c[30][30];
int main(){
//int nr=0;
ifstream f("dezastru.in");
ofstream out("dezastru.out");
f>>N>>K;
//??????????
/*for(int i=0; i<=N; i++) {
for(int j=0; j<=N; j++) {
numereMatr[i][j] = " ";
}
}*/
//??????????
for (int i=1; i<=N;i++) {
f>>numere[i];
}
//combinationUtil(numere, data, 0, N-1, 0, K);
//combinationUtil(1, N, K);
//out << setprecision(6) << (probab)/(double)(poz);
c[0][0]=1;
s[0][0]=1;
for(int i=1; i<=N; ++i) {
for(int j=0; j<=K; ++j)
{
c[i][j]= c[i-1][j]+ c[i-1][j-1];
s[i][j]= s[i-1][j]+ s[i-1][j-1]*numere[i];
}
}/*
for(int i=0; i<=N; ++i) {
for(int j=0; j<=K; ++j)
{
cout << c[i][j] << " ";
}
cout << "\n";
}*/
/*cout << "\n";
for(int i=0; i<=N; ++i) {
for(int j=0; j<=K; ++j)
{
cout << s[i][j] << " ";
}
cout << "\n";
}
cout << "\n";*/
out << setprecision(6) << (s[N][K])/(double)(c[N][K]);
return 0;
}