#include using namespace std; double dp[101][101][101]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; cin >> n; for (int i = 0; i <= 100; i++) { for (int j = 0; j <= 100; j++) { for (int k = 0; k <= 100; k++) { if (i + j + k == 0) continue; double sum = 1.0; if (i) sum += 1.0 * i / n * dp[i-1][j+1][k]; if (j) sum += 1.0 * j / n * dp[i][j-1][k+1]; if (k) sum += 1.0 * k / n * dp[i][j][k-1]; sum *= 1.0 * n / (i + j + k); dp[i][j][k] = sum; } } } int rm[4] = {}; for (int i = 0; i < n; i++) { int a; cin >> a; rm[max(3 - a, 0)]++; } cout << fixed << setprecision(12) << dp[rm[3]][rm[2]][rm[1]] << endl; return 0; }