#include <bits/stdc++.h>
using namespace std;
static const int INF = 500000000;
template <class T>
void debug(T a, T b) {
  for (; a != b; ++a) cerr << *a << ' ';
  cerr << endl;
}
int n, p;
int size[55];
double dp[105][105][105];
double fact[55];
int main() {
  cin >> n;
  for (int i = 0; i < n; ++i) cin >> size[i];
  cin >> p;
  fact[0] = 1;
  for (int i = 0; i < 54; ++i) fact[i + 1] = fact[i] * (i + 1);
  double res = 0;
  for (int i = 0; i < n; ++i) {
    rotate(size, size + 1, size + n);
    for (int j = 0; j < 55; ++j)
      for (int k = 0; k < 55; ++k)
        for (int l = 0; l < 55; ++l) dp[j][k][l] = 0;
    dp[1][0][0] = 1.0;
    for (int j = 1; j < n; ++j)
      for (int k = 0; k <= p; ++k)
        for (int l = 0; l < n; ++l)
          if (dp[j][k][l] > 0.5) {
            dp[j + 1][k + size[j]][l + 1] += dp[j][k][l];
            dp[j + 1][k][l] += dp[j][k][l];
          }
    double sum = 0;
    for (int j = max(0, p - size[0] + 1); j <= p; ++j)
      for (int l = 0; l < n; ++l) {
        sum += dp[n][j][l] * fact[n - l - 1] * (n - l) * fact[l];
      }
    res += sum;
  }
  res /= fact[n];
  res = n - res;
  printf("%.10f\n", res);
  return 0;
}
