#include <bits/stdc++.h>
double dp[51][51];
double c[51];
int a[51];
int n, p;
double total, amount;
int main() {
  c[0] = 1;
  for (int i(1); i <= 50; ++i) c[i] = c[i - 1] * i;
  scanf("%d", &n);
  int temp = 0, flag = 0;
  for (int i(1); i <= n; ++i) {
    scanf("%d", &a[i]);
    temp += a[i];
  }
  scanf("%d", &p);
  for (int i(1); i <= n; ++i)
    if (a[i] <= p) flag = 1;
  if (!flag) {
    printf("0\n");
    return 0;
  }
  if (temp <= p) {
    printf("%d\n", n);
    return 0;
  }
  for (int i(1); i <= n; ++i) {
    if (a[i] > p) amount += c[n - 1];
    for (int j(0); j <= 50; ++j)
      for (int k(0); k <= 50; ++k) dp[j][k] = 0;
    dp[0][0] = 1;
    for (int j(1); j <= n; ++j)
      if (j != i)
        for (int k(n - 1); k >= 0; --k)
          for (int l(0); l <= p; ++l)
            if (l + a[j] <= p) dp[k + 1][l + a[j]] += dp[k][l] * (k + 1);
    for (int j(1); j < n; ++j)
      for (int k(p - a[i] + 1); k <= p; ++k) {
        amount += dp[j][k] * c[n - j - 1];
        total += dp[j][k] * c[n - j - 1] * j;
      }
  }
  printf("%lf\n", total / amount);
}
