#include <bits/stdc++.h>
using namespace std;
const long long inf = 1e18;
const long double eps = 1e-6;
const long long maxn = 2001;
const long long maxv = 5001;
long long a[maxn], cnt[maxv], suf[maxv];
long long n;
long long solve() {
  long long cnt = 0;
  for (long long x1 = 0; x1 < n; ++x1) {
    for (long long y1 = 0; y1 < n; ++y1) {
      for (long long x2 = 0; x2 < n; ++x2) {
        for (long long y2 = 0; y2 < n; ++y2) {
          for (long long x3 = 0; x3 < n; ++x3) {
            for (long long y3 = 0; y3 < n; ++y3) {
              if (a[x1] < a[y1] && a[x2] < a[y2] && a[x3] > a[y3] &&
                  a[x1] + a[x2] + a[x3] > a[y1] + a[y2] + a[y3]) {
                ++cnt;
              }
            }
          }
        }
      }
    }
  }
  return cnt;
}
signed main() {
  ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
  cin >> n;
  for (long long i = 0; i < n; ++i) cin >> a[i];
  vector<long long> d;
  for (long long i = 0; i < n; ++i) {
    for (long long j = i + 1; j < n; ++j) {
      d.push_back(max(a[i], a[j]) - min(a[i], a[j]));
      ++cnt[d.back()];
    }
  }
  sort(d.begin(), d.end());
  d.erase(unique(d.begin(), d.end()), d.end());
  suf[maxv - 1] = cnt[maxv - 1];
  for (long long i = maxv - 2; i >= 0; --i) {
    suf[i] = suf[i + 1] + cnt[i];
  }
  long long ans = 0;
  for (long long i = 0; i < (long long)d.size(); ++i) {
    for (long long j = 0; j < (long long)d.size(); ++j) {
      long long val = d[i] + d[j] + 1;
      if (val >= maxv) continue;
      ans += cnt[d[i]] * cnt[d[j]] * suf[val];
    }
  }
  long double f = ans;
  long long p = n * (n - 1) / 2;
  long double s = p * p * p;
  f /= s;
  cout.precision(20);
  cout << f;
  return 0;
}
