#include <bits/stdc++.h>
using namespace std;
const long long MAXN = 501 * 1001;
long long fen[2][MAXN];
void add(long long x, long long v, long long id) {
  for (; x < MAXN; x += x & -x) fen[id][x] += v;
}
long long get(long long x, long long id) {
  long long ans = 0;
  for (; x; x -= x & -x) ans += fen[id][x];
  return ans;
}
long long a[MAXN];
int32_t main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  long long n;
  double ans = 0;
  cin >> n;
  double N = n;
  for (long long i = 0; i < n; i++) {
    cin >> a[i];
    long long x = get(a[i], 0);
    ans += (double)(n - i) * x / n / (n + 1);
    long long t = get(n + 1, 1) - get(a[i], 1);
    long long y = get(n + 1, 0) - get(a[i], 0);
    ans += t - (double)(n - i) * y / n / (n + 1);
    add(a[i], i + 1, 0);
    add(a[i], 1, 1);
  }
  cout << fixed << setprecision(9) << ans;
}
