#include <bits/stdc++.h>
using namespace std;
const int INF = 1e8;
const int MAXN = 100;
long long dp[MAXN][MAXN];
int ar[MAXN];
long double cnt[MAXN];
int main() {
  ios::sync_with_stdio(false);
  int n, p;
  cin >> n;
  for (int i = 0; i < (n); i++) {
    cin >> ar[i];
  }
  cnt[0] = 1;
  for (int i = 1; i < (n + 1); i++) {
    cnt[i] = cnt[i - 1] * i;
  }
  cin >> p;
  dp[0][0] = 1;
  for (int i = 0; i < (n); i++) {
    for (int j = n + 1 - 1; j >= 1; j--) {
      for (int k = p + 1 - 1; k >= ar[i]; k--) {
        dp[j][k] += dp[j - 1][k - ar[i]];
      }
    }
  }
  double ans = 0;
  for (int i = 0; i < (n + 1); i++) {
    for (int j = 1; j < (p + 1); j++) {
      ans += dp[i][j] * cnt[n - i] * cnt[i] / cnt[n];
    }
  }
  cout << fixed << setprecision(12) << ans << endl;
}
