#include<cstdio>
#include<iostream>
using namespace std;
const int N=3e2+10;
int n,A,num[4];double dp[N][N][N];bool vis[N][N][N];
inline double DFS(int x,int y,int z){
	if(vis[x][y][z])return dp[x][y][z];
	if(x)dp[x][y][z]+=1.0*x*(DFS(x-1,y,z)+1.0);
	if(y)dp[x][y][z]+=1.0*y*(DFS(x+1,y-1,z)+1.0);
	if(z)dp[x][y][z]+=1.0*z*(DFS(x,y+1,z-1)+1.0);
	dp[x][y][z]+=1.0*(n-x-y-z);
	dp[x][y][z]*=(1.0/(1.0*(x+y+z)));
	vis[x][y][z]=true;return dp[x][y][z];
}
int main(){
	scanf("%d",&n);vis[0][0][0]=true;dp[0][0][0]=0.0;
	for(register int i=1;i<=n;i++)scanf("%d",&A),num[A]++;
	printf("%.14lf\n",DFS(num[1],num[2],num[3]));
	return 0;
}