#include <bits/stdc++.h>
int a[55];
double fac[55], dp[55][55];
int main() {
  int n, p;
  fac[0] = 1;
  for (int i = 1; i <= 55; i++) {
    fac[i] = i * fac[i - 1];
  }
  scanf("%d", &n);
  for (int i = 0; i < n; i++) scanf("%d", &a[i]);
  scanf("%d", &p);
  double ans = 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 >= 1; j--) {
          for (int k = p; k >= 0; k--) {
            if (k >= a[l]) {
              dp[j][k] += dp[j - 1][k - a[l]];
            }
          }
        }
      }
    }
    for (int j = 0; j < n; j++) {
      for (int k = 0; k <= p - a[i]; k++) {
        ans += dp[j][k] * fac[j] * fac[n - j - 1];
      }
    }
  }
  printf("%.10lf\n", 1.0 * ans / fac[n]);
  return 0;
}
