#include<bits/stdc++.h>
                            using namespace std;

                            #define FOR(i,a,b) for(int i = (a); i < (b); i++)
                            #define rep(i,n) FOR(i,0,n)
                            #define RFOR(i,b,a) for(int i = (b) - 1; i>= (a); i--)
                            #define ITER(it, a) for(typeof(a.begin()) it = a.begin(); it != a.end(); it++)
                            #define FILL(a, value) memset(a, value, sizeof(a)

                            #define SZ(a) (int)a.size()
                            #define ALL(a) a.begin(), a.end()
                            #define PB push_back
                            #define MP make_pair
                            #define er erase
                            #define in insert
                            #define f first
//                            #define s second



                            typedef  long long LL;
                            typedef vector<int> VI;
                            typedef vector<LL > VL;
                            typedef vector<vector<int > > VVI;
                            typedef vector<vector<LL>> VVL;
                            typedef vector <vector<pair<int, int >> >VVPI;
                            typedef vector<vector<pair<LL, LL >> >VVPL;
                            typedef vector<pair<LL, LL >> PL;
                            typedef vector<PL> VPL;
                            typedef pair<int, int> PII;
                            typedef vector<PII> VPI;

                            const double PI = acos(-1.0);
                            const int INF = 1e9;
                            const LL LINF = (LL)1e18;

                            const double EPS = 1e-7;
                            const int MAS =  3 *1e5 + 10;
                            const int mod = 998244353;
                            const int MOD =1e9+7;
                            const int LOG= 19;
                            const int ar = 1e5 +100;
                            const int MAX = 1e6 + 1e2;

                         double p[305][305][305],dp[305][305][305];
                        int main() {
                            ios_base::sync_with_stdio(false);
                            cin.tie(NULL);
                            int n;
                            cin >> n;
                            VI cnt(4);
                            rep(i,n)
                            {
                                int x;cin >> x;
                                cnt[x]++;
                            }
                            p[cnt[1]][cnt[2]][cnt[3]] =1;
                            RFOR(c,n + 1,0)
                            RFOR(b,n + 1,0)
                            RFOR(a,n + 1 ,0)
                            {
                                if(a == 0 && b == 0 && c == 0 )continue;
                                if(a + b + c > n )continue;
                                double bad = (double)   (n - (a + b + c))/n;
                                double bad1 = bad / (1 - bad) + 1  ;
                                dp[a][b][c]+=bad1 * p[a][b][c];
                                if(a !=0)
                                {
                                    double prob = (double)  a  / (a + b + c);
                                    p[a-1][b][c] += p[a][b][c] * prob;
                                    dp[a -1][b][c] +=dp[a][b][c] * prob;
                                }
                                if(b !=0)
                                {
                                    double prob = (double)  b  / (a + b + c);
                                    p[a + 1][b - 1][c] += p[a][b][c] * prob;
                                    dp[a + 1][b - 1][c] +=dp[a][b][c] * prob;
                                }
                                if(c !=0)
                                {
                                    double prob = (double) c / (a + b + c);
                                    p[a][b + 1][c - 1] += p[a][b][c] * prob;
                                    dp[a ][b + 1][c - 1] +=dp[a][b][c] * prob;
                                }
                            }
                            cout << fixed <<setprecision(9) << dp[0][0][0];



                        }

















































Measured memory_bytes: 438528