#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1.0);
const double eps = 1e-11;
const int inf = 0x3f3f3f3f;
template <class T>
void show(T a, int n) {
  for (int i = 0; i < n; ++i) cout << a[i] << ' ';
  cout << endl;
}
template <class T>
void show(T a, int r, int l) {
  for (int i = 0; i < r; ++i) show(a[i], l);
  cout << endl;
}
const int N = 100000 + 111;
long long c[100][100];
long long a[111];
long long dp[111][111];
long long dp2[111][111];
int main() {
  int i, j;
  c[0][0] = 1;
  for (i = 0; i < 77; i++) {
    for (j = 0; j < 77; j++) {
      c[i + 1][j] += c[i][j];
      c[i + 1][j + 1] += c[i][j];
    }
  }
  int n, m;
  cin >> n;
  for (i = 0; i < n; i++) cin >> a[i];
  cin >> m;
  double ans = 0;
  dp[0][0] = 1;
  for (i = 0; i < n; i++) {
    for (int t = 0; t <= 50; t++) {
      for (j = 50; j >= 0; j--) {
        dp2[j][t] += dp[j][t];
        if (j >= a[i] && t > 0) dp2[j][t] += dp[j - a[i]][t - 1];
      }
    }
    memcpy(dp, dp2, sizeof(dp));
    memset(dp2, 0, sizeof(dp2));
  }
  for (i = 1; i <= 50; i++) {
    for (j = 0; j <= 50; j++) {
      dp[i][j] += dp[i - 1][j];
    }
  }
  for (i = 1; i <= n; i++) {
    ans += dp[m][i] * 1.0 / c[n][i];
  }
  printf("%.10lf\n", ans);
  return 0;
}
