#include <bits/stdc++.h>
using namespace std;
int v[55];
double dp[55][55][55], fat[55];
int main() {
  int n, p, sum = 0;
  scanf("%d", &n);
  fat[0] = 1;
  for (int i = 1; i <= n; i++) fat[i] = fat[i - 1] * i;
  for (int i = 1; i <= n; i++) {
    scanf("%d", &v[i]);
    sum += v[i];
  }
  scanf("%d", &p);
  if (sum <= p) {
    printf("%d\n", n);
    return 0;
  }
  double ans = 0;
  for (int i = 1; i <= n; i++) {
    memset(dp, 0, sizeof dp);
    dp[0][0][0] = 1;
    swap(v[i], v[n]);
    for (int j = 1; j < n; j++) {
      for (int cnt = 0; cnt < j; cnt++) {
        for (int k = 0; k <= p; k++) {
          if (k + v[j] <= p)
            dp[j][cnt + 1][k + v[j]] += dp[j - 1][cnt][k] * (cnt + 1);
          int o = (j - cnt - 1);
          dp[j][cnt][k] += dp[j - 1][cnt][k] * (o + 1);
        }
      }
    }
    for (int cnt = 0; cnt < n; cnt++) {
      for (int k = 0; k + v[n] <= p; k++) {
        ans += dp[n - 1][cnt][k];
      }
    }
    swap(v[i], v[n]);
  }
  printf("%.15lf\n", ans / fat[n]);
  return 0;
}
