{DEFINE DEBUG}
{DEFINE DMI}
{DEFINE DO0}
{$IFDEF DEBUG}
{$B-,I+,N+,O-,Q+,R+,S+}
{$ELSE}
{$B-,I-,N+,O+,Q-,R-,S-}
{$ENDIF}
{$APPTYPE CONSOLE}
Program JurySol;
{uses SysUtils;}
const TaskName = 'lie';
 MaxN = 127; MinC = 100; MaxSim = 100000000; MaxK: Cardinal = 4294967295;
 Prime: Cardinal = 2718281829; Convert: Extended = 4294967294.0;
 eps: Extended = 1E-14;
var i, j, l, m, n, x, y: Cardinal;
 p: array [0..MaxN] of Cardinal;
 f: Extended;

BEGIN
 reset (input, TaskName + '.in');
 rewrite (output, TaskName + '.out');
{$IFDEF DMI} repeat {$ENDIF}
 read (n);
 dec (n);
 for j := n downto 0 do begin
  read (f);
  p[j] := Round (f * Convert);
 end;
 y := MaxSim div n;
 x := 0;
 l := 409999;
 for i := y - 1 downto 0 do begin
  m := 0;
  for j := n downto 0 do begin
   l := l * Prime;
   if l >= p[j] then inc (m);
  end;
  if (m and 1) = 0 then inc (x);
 end;
 writeln (x / y + eps:0:6);
{$IFDEF DMI} until seekeof; {$ENDIF}
END.
