public class Euler584 {
    public static String solve() {
        int N=365,k=4,D=7,W=D+1,L=W-1;int nMax=(k-1)*N/W;
        double[] invFact=new double[k];double f=1;invFact[0]=1;for(int i=1;i<k;i++){f*=i;invFact[i]=1.0/f;}
        java.util.List<int[]> states=new java.util.ArrayList<>();java.util.Map<String,Integer> stateId=new java.util.HashMap<>();
        gen(0,k-1,new int[L],states,stateId,L);int S=states.size();
        int[][] tns=new int[S][];int[][] tna=new int[S][];double[][] tnw=new double[S][];
        for(int i=0;i<S;i++){int[] st=states.get(i);int sm=0;for(int v:st)sm+=v;
            java.util.List<int[]> tl=new java.util.ArrayList<>();java.util.List<Double> wl=new java.util.ArrayList<>();
            for(int c=0;c<=k-1-sm;c++){int[] nxt=new int[L];if(L>0){System.arraycopy(st,1,nxt,0,L-1);nxt[L-1]=c;}
                String key=java.util.Arrays.toString(nxt);tl.add(new int[]{stateId.get(key),c});wl.add(invFact[c]);}
            tns[i]=new int[tl.size()];tna[i]=new int[tl.size()];tnw[i]=new double[tl.size()];
            for(int j=0;j<tl.size();j++){tns[i][j]=tl.get(j)[0];tna[i][j]=tl.get(j)[1];tnw[i][j]=wl.get(j);}}
        double[] totals=new double[nMax+1];
        for(int s0=0;s0<S;s0++){double[][] dp=new double[S][nMax+1];dp[s0][0]=1.0;
            for(int day=0;day<N;day++){double[][] nxt=new double[S][nMax+1];
                for(int u=0;u<S;u++){double[] row=dp[u];for(int t=0;t<tns[u].length;t++){int ns=tns[u][t],add=tna[u][t];double w=tnw[u][t];
                    double[] dest=nxt[ns];int lim=nMax-add;for(int n=0;n<=lim;n++){double v=row[n];if(v!=0)dest[n+add]+=v*w;}}}dp=nxt;}
            double[] row=dp[s0];for(int n=0;n<=nMax;n++)totals[n]+=row[n];}
        double expected=0,fact=1,invN=1.0/N,invNpow=1;
        for(int n=0;n<=nMax;n++){if(n>0){fact*=n;invNpow*=invN;}expected+=totals[n]*fact*invNpow;}
        return String.format("%.8f",expected);}
    static void gen(int pos,int rem,int[] cur,java.util.List<int[]> states,java.util.Map<String,Integer> stateId,int L){
        if(pos==L){int[] s=cur.clone();stateId.put(java.util.Arrays.toString(s),states.size());states.add(s);return;}
        for(int v=0;v<=rem;v++){cur[pos]=v;gen(pos+1,rem-v,cur,states,stateId,L);}}
    public static void main(String[] args){System.out.println(solve());}
}
