#include <iostream>
#include <algorithm>

using namespace std;

int N;
int one, two, thr;
double dp[301][301][301];

double solve(int i, int j, int k){
	if(dp[i][j][k] != -1) return dp[i][j][k];
	if(!i && !j && !k) return 0.0;

	double res = 0.0;
	if(i > 0) res += solve(i-1, j, k) * i;
	if(j > 0) res += solve(i+1, j-1, k) * j;
	if(k > 0) res += solve(i, j+1, k-1) * k;
	res += N;
	res *= 1.0 / (i + j + k);

	return dp[i][j][k] = res;
}

int main(void){
	cin >> N;
	one = two = thr = 0;
	for(int i=0; i<N; i++){
		int a; cin >> a;
		if(a == 1) one++;
		else if(a == 2) two++;
		else thr++;
	}

	fill(dp[0][0], dp[301][0], -1);
	printf("%.10f\n", solve(one, two, thr));

}