#include <bits/stdc++.h>
using namespace std;
int n, a[55], p, sum, v[55];
double dp[55][55][55], f[55], ans = 0;
double fact(int k) {
  if (k < 0) return 0.;
  if (k == 0) return 1.;
  if (v[k]) return f[k];
  v[k] = 1;
  return f[k] = (double)k * fact(k - 1);
}
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) {
    printf("%d.0000\n", n);
    return 0;
  }
  for (int k = 1; k <= n; ++k) {
    memset(dp, 0, sizeof(dp));
    dp[0][0][0] = 1.;
    for (int i = 1; i <= n; ++i) {
      if (i == k) continue;
      for (int t = 1; t <= i; ++t) {
        for (int total = a[i]; total <= p; ++total) {
          for (int j = t - 1; j <= i - 1; ++j) {
            dp[i][t][total] += (double)t * dp[j][t - 1][total - a[i]];
          }
        }
      }
    }
    for (int total = p - a[k] + 1; total <= p; ++total) {
      for (int i = 1; i <= n; ++i)
        for (int t = 0; t <= i; ++t) {
          ans += (double)t * dp[i][t][total] * fact(n - t - 1) / fact(n);
        }
    }
  }
  printf("%.17lf\n", ans);
  return 0;
}
