#include <bits/stdc++.h>
using namespace std;
int a[51];
double dp[50][51][51];
double fact(int n) {
  double res = 1;
  for (int i = 1; i <= n; i++) res *= i;
  return res;
}
double all_count = 0, all_sum = 0;
int main() {
  ifstream inf("in.txt");
  int n;
  cin >> n;
  int sum = 0;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    sum += a[i];
  }
  int p;
  cin >> p;
  if (sum <= p) {
    cout << n << endl;
    return 0;
  }
  for (int ex_i = 0; ex_i < n; ex_i++) {
    for (int i = 0; i < p + 1; i++)
      for (int j = 0; j < n + 1; j++) dp[0][i][j] = 0;
    dp[0][0][0] = 1;
    if (ex_i != 0) dp[0][a[0]][1] = 1;
    for (int f = 1; f < n; f++) {
      for (int sum = 0; sum < p + 1; sum++) {
        for (int i = 0; i < n + 1; i++) dp[f][sum][i] = dp[f - 1][sum][i];
        if (sum - a[f] >= 0 && ex_i != f)
          for (int i = 0; i < n; i++)
            dp[f][sum][i + 1] += dp[f - 1][sum - a[f]][i];
      }
    }
    for (int sum = max(p - a[ex_i] + 1, 0); sum <= p; sum++) {
      for (int i = 0; i < n + 1; i++) {
        all_count += dp[n - 1][sum][i] * fact(i) * fact(n - i - 1);
        all_sum += dp[n - 1][sum][i] * fact(i) * fact(n - i - 1) * i;
      }
    }
  }
  cout << std::setprecision(11) << all_sum / all_count << endl;
}
