#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
ld fac(ll n) {
  ld res = 1;
  while (n) {
    res *= n--;
  }
  return res;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n;
  cin >> n;
  vector<int> a(n);
  for (int i = 0; i < n; ++i) {
    cin >> a[i];
  }
  int p;
  cin >> p;
  if (accumulate(a.begin(), a.end(), 0) <= p) {
    cout << n << '\n';
    return 0;
  }
  ld expected = 0;
  ld denom = fac(n);
  for (int i = 0; i < n; ++i) {
    auto cur_a = a;
    cur_a.erase(cur_a.begin() + i);
    vector<vector<ll>> nums(n, vector<ll>(p + 1));
    nums[0][0] = 1;
    for (int j = 0; j + 1 < n; ++j) {
      int v = cur_a[j];
      for (int k = n - 2; k >= 0; --k) {
        for (int l = 0; l + v <= p; ++l) {
          nums[k + 1][l + v] += nums[k][l];
        }
      }
    }
    for (int k = p; k >= 0 && k > p - a[i]; --k) {
      for (int j = 1; j < n; ++j) {
        expected += j * nums[j][k] * fac(j) * fac(n - 1 - j) / denom;
      }
    }
  }
  cout << fixed << setprecision(16) << expected << '\n';
  return 0;
}
