#include <bits/stdc++.h>
using namespace std;
long long const MAXN = 5e1 + 8;
long long const INF = 3e3 + 8;
long long const delta = 1000000007;
long long a[MAXN];
long long dp[MAXN][MAXN][INF];
double calc(long long t, long long n, long long b) {
  double ans = t;
  for (long long i = b + 1; i <= n; i++) ans /= (double)i;
  for (long long i = 1; i <= n - b; i++) ans *= (double)i;
  return ans;
}
int main() {
  std::ios::sync_with_stdio(0);
  ;
  cin.tie(0);
  cout.tie(0);
  long long n;
  cin >> n;
  for (long long i = 1; i <= n; i++) cin >> a[i];
  long long p;
  cin >> p;
  cout.precision(10);
  cout << fixed;
  double ans = 0;
  dp[0][0][0] = 1;
  for (long long i = 1; i <= n; i++) {
    for (long long j = 0; j <= n; j++) {
      for (long long k = 0; k < INF; k++) {
        dp[i][j][k] = dp[i - 1][j][k];
        if (j && k >= a[i]) dp[i][j][k] += dp[i - 1][j - 1][k - a[i]];
      }
    }
  }
  for (long long i = 1; i <= p; i++) {
    for (long long j = 1; j <= n; j++) ans += calc(dp[n][j][i], n, j);
  }
  cout << ans;
  return 0;
}
