#include <bits/stdc++.h>
using namespace std;
long long C[60][60];
double dp[60][60][60];
int a[60];
int main() {
  int n, p;
  cin >> n;
  for (int i = 0; i < (n); i++) cin >> a[i];
  cin >> p;
  double first[60];
  first[0] = 1;
  for (int i = 1; i <= n; i++) first[i] = i * first[i - 1];
  double A = 0;
  int s = 0;
  for (int i = 0; i < (n); i++) s += a[i];
  if (s <= p) {
    A = n;
    cout << n << endl;
    return 0;
  }
  for (int l = 0; l < n; l++) {
    for (int i = 0; i < (50 + 1); i++)
      for (int j = 0; j < (50 + 1); j++)
        for (int k = 0; k < (50 + 1); k++) dp[i][j][k] = 0;
    dp[0][0][0] = 1;
    for (int i = 0; i < n; i++) {
      if (i == l) {
        for (int j = 0; j <= i; j++)
          for (int sum = 0; sum <= p; sum++) dp[i + 1][j][sum] = dp[i][j][sum];
        continue;
      }
      for (int j = 0; j <= i; j++) {
        for (int sum = 0; sum <= p; sum++) {
          if (sum + a[i] <= p) dp[i + 1][j + 1][sum + a[i]] += dp[i][j][sum];
          dp[i + 1][j][sum] += dp[i][j][sum];
        }
      }
    }
    for (int i = n; i <= n; i++) {
      if (i == l) continue;
      for (int j = 0; j <= i; j++) {
        for (int sum = 0; sum <= p; sum++) {
          if (sum + a[l] > p) {
            A += 1.0 * dp[i][j][sum] * first[n - 1 - j] * first[j] / first[n] *
                 j;
          }
        }
      }
    }
  }
  cout << A << endl;
}
