#include <bits/stdc++.h>
using namespace std;
const int N = 51;
int n, p;
int a[N];
long double dp[N][N];
long double fac[N];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  fac[0] = 1;
  for (long long i = 1; i <= 50; ++i) {
    fac[i] = fac[i - 1] * i;
  }
  cin >> n;
  int sum = 0;
  for (long long i = 1; i <= n; ++i) {
    cin >> a[i];
    sum += a[i];
  }
  cin >> p;
  if (sum <= p) {
    cout << n << endl;
    return 0;
  }
  long double ans = 0.0;
  for (long long i = 1; i <= n; ++i) {
    memset(dp, 0, sizeof(dp));
    dp[0][0] = 1;
    swap(a[i], a[n]);
    for (long long j = 1; j <= n - 1; ++j) {
      for (long long cnt = n - 2; cnt >= 0; --cnt) {
        for (long long len = p - 1; len >= 0; --len) {
          if (len + a[j] <= p) dp[cnt + 1][len + a[j]] += dp[cnt][len];
        }
      }
    }
    swap(a[i], a[n]);
    for (long long cnt = 1; cnt <= n; ++cnt) {
      for (long long len = 0; len <= p; ++len) {
        if (len + a[i] > p)
          ans += dp[cnt][len] * fac[cnt] * fac[n - cnt - 1] * cnt;
      }
    }
  }
  ans /= fac[n];
  cout << fixed << setprecision(10) << ans;
  return 0;
}
