import java.util.Scanner; public class Main_yukicoder66 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int m = sc.nextInt(); int n = 0x1 << m; int[] s = new int[n]; for (int i = 0; i < n; i++) { s[i] = sc.nextInt(); } double[][] p = new double[m][n]; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { for (int k = 0; k < n; k++) { int mask = ~((0x1 << i + 1) - 1); int bit = 0x1 << i; if ((j & bit) == (k & bit)) { continue; } if ((j & mask) != (k & mask)) { continue; } if (i > 0) { p[i][j] += p[i - 1][j] * p[i - 1][k] * s[j] * s[j] / (s[j] * s[j] + s[k] * s[k]); } else { p[i][j] += (double)s[j] * s[j] / (s[j] * s[j] + s[k] * s[k]); } } } } System.out.printf("%.7f\n", p[m - 1][0]); sc.close(); } }