#include <bits/stdc++.h>
using namespace std;
int a[60];
int n, p;
int sum = 0;
double all = 0.0;
double f[55][55][55];
double fact(double arg) {
  double ans = 1.0;
  for (int i = 1; i <= int(arg); ++i) ans *= double(i);
  return ans;
}
void nl() {
  for (int i = 0; i <= n; ++i)
    for (int j = 0; j <= n; ++j)
      for (int k = 0; k <= p; ++k) f[i][j][k] = 0.0;
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) {
    scanf("%d", &a[i]);
    sum += a[i];
  }
  scanf("%d", &p);
  if (sum <= p) {
    cout << n << endl;
    return 0;
  }
  for (int ff = 1; ff <= n; ++ff) {
    nl();
    f[0][0][0] = 1;
    for (int i = 1; i <= n; ++i)
      for (int j = 0; j <= n - 1; ++j)
        for (int k = 0; k <= p; ++k) {
          f[i][j][k] += f[i - 1][j][k];
          if (i == ff) continue;
          f[i][j][k] =
              f[i - 1][j][k] + (k - a[i] >= 0 ? f[i - 1][j - 1][k - a[i]] : 0);
        }
    for (int i = 1; i < n; ++i)
      for (int j = p - a[ff] + 1; j <= p; ++j)
        all += fact(i) * fact(n - i - 1) * f[n][i][j] * (double(i));
  }
  all /= fact(n);
  cout << fixed << setprecision(10) << all;
  return 0;
}
