#include <bits/stdc++.h>
using namespace std;
const int maxn = 105;
int n;
int a[maxn];
int p;
double dp[maxn][maxn];
double release(int x) {
  double res = 1;
  for (register double i = x + 1; i <= n; i++) {
    res *= (i - x);
    res /= i;
  }
  return res;
}
signed main() {
  scanf("%d", &n);
  for (register int i = 1; i <= n; i++) {
    scanf("%d", &a[i]);
  }
  scanf("%d", &p);
  dp[0][0] = 1;
  for (register int i = 1; i <= n; i++) {
    for (register int j = n - 1; j >= 0; j--) {
      for (register int k = p - a[i]; k >= 0; k--) {
        dp[j + 1][k + a[i]] += dp[j][k];
      }
    }
  }
  double ans = 0;
  for (register int i = 1; i <= n; i++) {
    for (register int j = 0; j <= p; j++) {
      if (dp[i][j]) {
        ans += dp[i][j] * release(i);
      }
    }
  }
  printf("%.10lf\n", ans);
  return 0;
}
