#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n,a[5],x;
double f[305][305][305];
bool vis[305][305][305];
double dfs(int i,int j,int k)
{
	if(i==0 && j==0 && k==0)return 0;
	if(vis[i][j][k])return f[i][j][k];
	vis[i][j][k]=1;
	if(k)f[i][j][k]+=dfs(i,j+1,k-1)*k/n;
	if(j)f[i][j][k]+=dfs(i+1,j-1,k)*j/n;
	if(i)f[i][j][k]+=dfs(i-1,j,k)*i/n;
	return f[i][j][k]=(f[i][j][k]+1)*n/(i+j+k);
}
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;++i){
		scanf("%d",&x);
		++a[x];
	}
	printf("%.10lf\n",dfs(a[1],a[2],a[3]));
	return 0;
}