#include <bits/stdc++.h>
double b[50 + 1][50 * 50 + 1], f[50 + 1];
using namespace std;
int main() {
  f[0] = 1;
  int n, p, a[50], sum = 0;
  cin >> n;
  for (int i = 1; i <= n; ++i) f[i] = f[i - 1] * i;
  for (int i = 0; i < n; ++i) {
    cin >> a[i];
    sum += a[i];
  }
  cin >> p;
  if (sum <= p) {
    cout << n << endl;
    return 0;
  }
  b[0][0] = 1;
  for (int i = 0; i < n; ++i) {
    for (int z = n; z >= 1; --z)
      for (int j = a[i]; j <= 50 * n; ++j) {
        b[z][j] += b[z - 1][j - a[i]];
      }
  }
  double res = 0;
  for (int z = 1; z < n; ++z) {
    double sa = 0, sb = 0;
    for (int i = p + 1; i <= 50 * n; ++i) {
      sa += b[z][i];
      sb += b[z + 1][i];
    }
    res += (sb * f[z + 1] * f[n - z - 1] - sa * f[z] * f[n - z]) / f[n] * z;
  }
  cout << fixed << setprecision(5) << res << endl;
  return 0;
}
