#include <vector>
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;

int main() {
	int n;
	vector<int> w;
	cin >> n;
	int mozliwe_roznice[5001];
	for(int i=0; i<5001; ++i) mozliwe_roznice[i]=0;
	for(int i=0; i<n; ++i){
		int pom;
		cin >> pom;
		w.push_back(pom);
	}
	sort(w.begin(), w.end());
	for(int i=0; i<n; ++i){
		for(int j=i+1; j<n; ++j)
		++mozliwe_roznice[w[j]-w[i]];
	}

	int mozliwe_podwojne[10002];
	for(int i=0; i<10002; ++i)mozliwe_podwojne[i]=0;

	for(int i=0; i<5001; ++i){
		for(int j=0; j<5001; ++j){
			mozliwe_podwojne[i+j] += mozliwe_roznice[i] * mozliwe_roznice[j];
		}
	}
	long long int wszystkie;
	wszystkie = n*n*n*(n-1)*(n-1)*(n-1)/8;
	long long int mozliwe = 0;
	for(int i=0; i<10000; ++i){
		for(int j=i+1; j<5000; ++j){
			mozliwe+=mozliwe_podwojne[i]*mozliwe_roznice[j];
		}
	}

	long long int nwd = __gcd(mozliwe, wszystkie);
	mozliwe/=nwd;
	wszystkie/=nwd;

	while(wszystkie > 10000000000LL){
		wszystkie/=2;
		mozliwe/=2;
	}

	double wynik = double(mozliwe)/double(wszystkie);

	cout << wynik;

	return 0;
}
