#include <cstdio>

using namespace std;

typedef double db;

const int N = 305;

db dp[N][N][N];
int bio[N][N][N], n, cn[N];

db f(int x,int y,int z){
    if(x < 0 || y < 0 || z < 0) return 0;
    if(!x && !y && !z) return 0;
    if(bio[x][y][z]) return dp[x][y][z];
    dp[x][y][z] = (db)x / (x + y + z) * f(x - 1, y , z) + (db)y / (x + y + z) * f(x + 1, y - 1, z) + (db)z / (x + y + z) * f(x, y + 1, z - 1) + (x + y + z != n ? (db)n / (x + y + z) : 1);
    bio[x][y][z] = 1;
    return dp[x][y][z];
}

int main(){
    scanf("%d", &n);
    for(int i = 0;i<n;i++){
        int x;scanf("%d", &x);
        cn[x]++;
    }
    printf("%.10lf\n", f(cn[1], cn[2], cn[3]));
}
