#include <bits/stdc++.h>
using namespace std;
int n, v;
int a[55];
double f[55], dp[55][55];
void init() {
  f[0] = f[1] = 1;
  for (int i = 2; i <= 50; i++) {
    f[i] = f[i - 1] * i;
  }
}
void DP() {
  double ret = 0;
  for (int i = 0; i < n; i++) {
    memset(dp, 0, sizeof(dp));
    dp[0][0] = 1;
    for (int l = 0; l < n; l++) {
      if (l != i) {
        for (int j = n - 1; j > 0; j--) {
          for (int k = v; k >= a[l]; k--) {
            dp[j][k] += dp[j - 1][k - a[l]];
          }
        }
      }
    }
    for (int j = 0; j < n; j++) {
      for (int k = 0; k <= v - a[i]; k++) {
        ret += dp[j][k] * f[j] * f[n - j - 1];
      }
    }
  }
  printf("%lf\n", ret / f[n]);
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) scanf("%d", &a[i]);
  scanf("%d", &v);
  init();
  DP();
  return 0;
}
