#include using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define Int long long double dp[109][109][109]; int N; double rec(int i, int j, int k) { if (i < 0 || j < 0 || k < 0) return 0LL; if (dp[i][j][k] != -1) return dp[i][j][k]; double total = i + j + k; double res = N / total; res += rec(i - 1, j + 1, k) * i / total; res += rec(i, j - 1, k + 1) * j / total; res += rec(i, j, k - 1) * k / total; return dp[i][j][k] = res; } int main() { cin >> N; vector cnt(3); rep(i, N) { int a; cin >> a; if (a < 3) cnt[a]++; } rep(i, 109) { rep(j, 109) { fill(dp[i][j], dp[i][j] + 109, -1); } } dp[0][0][0] = 0LL; cout << fixed << setprecision(7) << rec(cnt[0], cnt[1], cnt[2]) << endl; }