N = int(input()) A = list(map(int, input().split())) cards = [0] * (3+1) for n in range(N): cards[min(A[n], 3)] += 1 # dp[i][j][k]: # 0 枚持っているカードが i 種類 # 1 枚持っているカードが j 種類 # 2 枚持っているカードが k 種類 # のときのコンプまでの期待値 dp = [[[-1.0]*(N+1) for j in range(N+1)] for i in range(N+1)] dp[0][0][0] = 0.0 def E(i, j, k): if i < 0 or j < 0 or k < 0: return 0.0 if dp[i][j][k] != -1.0: return dp[i][j][k] dp[i][j][k] = (i * E(i-1, j+1, k) + j * E(i, j-1, k+1) + k * E(i, j, k-1) + N) / (i+j+k) return dp[i][j][k] E(cards[0], cards[1], cards[2]) print(dp[cards[0]][cards[1]][cards[2]])