import java.text.DecimalFormat;
import java.util.*;
public class jam {
	public static int BS(int a, int s, int e, LinkedList<Integer> l) {
		while(e-s>1) {
			int m=s+(e-s)/2;
			if (l.get(m)>a) {
				e=m;
			}
			else {
				s=m;
			}
		}
		return e;
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int[] tab=new int[n];
		for (int i=0; i<n; i++) {
			tab[i]=sc.nextInt();
		}
		LinkedList<Integer> l=new LinkedList<Integer>();
		HashMap<Integer,Integer> map=new HashMap();
		for (int i=0; i<n; i++) {
			for (int j=i+1; j<n; j++ ) {
				int dif=Math.abs(tab[i]-tab[j]);
				if (map.containsKey(dif)) {
					int k=map.get(dif);
					map.put(dif, k+1);
				}
				else {
					l.add(dif);
					map.put(dif, 1);
				}
			}
		}
		int s=l.size();
		for (int i=0; i<s; i++) {
		   //System.out.println(l.get(i));
		}
		Collections.sort(l);
		int[] ind=new int[s];
		for (int i=0; i<s; i++) {
			ind[i]=map.get(l.get(i));
		}
		for (int i=1; i<s; i++) {
			ind[i]+=ind[i-1];
		}
		int sum=0;
		//System.out.println(s);
		for(int i=0; i<s; i++) {
			for (int j=i; j<s; j++) {
				int dif=l.get(i)+l.get(j);
				int r=map.get(l.get(i))*map.get(l.get(j));
				//System.out.println(r);
				//System.out.println(dif+"  "+r);
				int h=BS(l.get(i)+l.get(j), 0, s, l);
				//System.out.println(h);
				//System.out.println(ind[s-1]-ind[h-1]+"  here");
				sum+=r*(ind[s-1]-ind[h-1]);
				//System.out.println(sum);
			}
		}
		//System.out.println(sum);
		//calcul de la probabilité
		// proba de A wins
		if (sum==0) {
			float a=0;
			System.out.printf("%.10f", a);
		}
		else {
			long d=(n*(n-1))/2;
			d=d*d*d;
			//System.out.println(d);
			double p=(double)sum/ (double) d;
			System.out.printf("%.10f\n" ,p);
		}
		
 		
		

	}

}
