import sys input = sys.stdin.readline def win(si, sj): return si * si / (si * si + sj * sj) M = int(input()) N = 1 << M S = [int(input()) for _ in range(N)] dp = [1] * N op = [[i] for i in range(N)] for i in range(M): dp_nxt = [0] * N for x in range(N): P = 0. opponent = op[x].copy() for y in opponent: y ^= (1 << i) P += win(S[x], S[y]) * dp[y] op[x].append(y) dp_nxt[x] = dp[x] * P dp = dp_nxt print("{:.9f}".format(dp[0]))