#include <bits/stdc++.h>
using namespace std;
double dp[52][52][52];
double f[52];
int main() {
  int n, p;
  int a[52];
  while (scanf("%d", &n) != EOF) {
    int i;
    f[0] = 1;
    for (i = 1; i <= n; i++) {
      f[i] = f[i - 1] * i;
    }
    int sum = 0;
    for (i = 1; i <= n; i++) {
      scanf("%d", &a[i]);
      sum += a[i];
    }
    scanf("%d", &p);
    if (sum <= p) {
      printf("%d\n", n);
      continue;
    }
    int j, k;
    double ans = 0;
    for (int z = 1; z <= n; z++) {
      memset(dp, 0, sizeof(dp));
      dp[0][0][0] = 1;
      int ss = 0;
      for (i = 1; i <= n; i++) {
        if (i == z) continue;
        ss++;
        for (j = 0; j <= n - 1; j++) {
          for (k = 0; k <= p; k++) {
            dp[ss][j][k] += dp[ss - 1][j][k];
            if (j - 1 >= 0 && k - a[i] >= 0)
              dp[ss][j][k] += dp[ss - 1][j - 1][k - a[i]];
          }
        }
      }
      double tmp = 0;
      for (j = 0; j < n; j++) {
        for (k = 0; k <= p; k++) {
          if (k + a[z] > p && dp[ss][j][k] > 0) {
            tmp += j * f[j] * f[n - j - 1] * dp[ss][j][k];
          }
        }
      }
      ans += tmp / f[n];
    }
    printf("%.9lf\n", ans);
  }
  return 0;
}
