#include <bits/stdc++.h>
using namespace std;
int N;
long double f[55], cnt[55][55][55];
int a[55], sum, p;
long double ans;
int main() {
  scanf("%d", &N);
  f[0] = 1;
  for (int i = 1; i <= N; ++i) {
    scanf("%d", &a[i]);
    sum += a[i];
    f[i] = f[i - 1] * i;
  }
  scanf("%d", &p);
  if (sum <= p) {
    printf("%.9lf\n", 1. * N);
    return 0;
  }
  for (int z = 1; z <= N; ++z) {
    memset(cnt, 0, sizeof(cnt));
    cnt[0][0][0] = 1;
    for (int cur = 1; cur <= N; ++cur)
      for (int use = 0; use <= cur; ++use) {
        for (int s = 0; s <= p; ++s) {
          cnt[cur][use][s] = cnt[cur - 1][use][s];
          if (use > 0 && cur != z && s - a[cur] >= 0)
            cnt[cur][use][s] += cnt[cur - 1][use - 1][s - a[cur]];
        }
      }
    for (int use = 1; use <= N; ++use)
      for (int s = p; s + a[z] > p; --s) {
        ans += cnt[N][use][s] * use * f[use] * f[N - use - 1];
      }
  }
  ans /= f[N];
  printf("%.10lf\n", double(ans));
  return 0;
}
