#include <bits/stdc++.h>
using namespace std;
const int N = 55;
long long f[N][N];
int n, p, a[N];
double ans, lg[N];
void solve(int x) {
  memset(f, 0, sizeof(f));
  f[0][0] = 1;
  for (int i = (1); i < (n + 1); ++i) {
    if (i == x) continue;
    for (int j = i; j >= 0; --j)
      for (int k = (0); k < (p - a[i] + 1); ++k) f[j + 1][k + a[i]] += f[j][k];
  }
  for (int i = (1); i < (n + 1); ++i)
    for (int j = (p - a[x] + 1); j < (p + 1); ++j)
      ans += f[i][j] * i * exp(lg[i] + lg[n - i - 1] - lg[n]);
}
int main() {
  for (int i = (1); i < (N); ++i) lg[i] = lg[i - 1] + log(i);
  scanf("%d", &n);
  for (int i = (1); i < (n + 1); ++i) scanf("%d", &a[i]);
  scanf("%d", &p);
  int sum = 0;
  for (int i = (1); i < (n + 1); ++i) sum += a[i];
  if (sum <= p) {
    printf("%.10f", 1.0 * n);
    return 0;
  }
  ans = 0;
  for (int i = (1); i < (n + 1); ++i) solve(i);
  printf("%.10f", ans);
  return 0;
}
