import java.util.Scanner;
public class Main{
	public static void main(String[]args){
		double ans=0.000000000;
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int k=sc.nextInt();
		 for(int i=1;i<=n;i++){
			    long temp=i;
			    long tri=0;
			    while(temp<k){
			      temp*=2;
			      tri++;
			    }
			    ans+=1.000000000/(n*Math.pow(2,tri));
			 }
		 System.out.println(ans);
	}
} import java.util.Scanner; Scanner java.util public class Main{
	public static void main(String[]args){
		double ans=0.000000000;
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int k=sc.nextInt();
		 for(int i=1;i<=n;i++){
			    long temp=i;
			    long tri=0;
			    while(temp<k){
			      temp*=2;
			      tri++;
			    }
			    ans+=1.000000000/(n*Math.pow(2,tri));
			 }
		 System.out.println(ans);
	}
} Main public static void main(String[]args){
		double ans=0.000000000;
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int k=sc.nextInt();
		 for(int i=1;i<=n;i++){
			    long temp=i;
			    long tri=0;
			    while(temp<k){
			      temp*=2;
			      tri++;
			    }
			    ans+=1.000000000/(n*Math.pow(2,tri));
			 }
		 System.out.println(ans);
	} main {
		double ans=0.000000000;
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int k=sc.nextInt();
		 for(int i=1;i<=n;i++){
			    long temp=i;
			    long tri=0;
			    while(temp<k){
			      temp*=2;
			      tri++;
			    }
			    ans+=1.000000000/(n*Math.pow(2,tri));
			 }
		 System.out.println(ans);
	} double ans=0.000000000; ans 0.000000000 Scanner sc=new Scanner(System.in); sc new Scanner(System.in) int n=sc.nextInt(); n sc.nextInt() sc.nextInt sc int k=sc.nextInt(); k sc.nextInt() sc.nextInt sc for(int i=1;i<=n;i++){
			    long temp=i;
			    long tri=0;
			    while(temp<k){
			      temp*=2;
			      tri++;
			    }
			    ans+=1.000000000/(n*Math.pow(2,tri));
			 } int i=1; int i=1; i 1 i<=n i n i++ i++ i {
			    long temp=i;
			    long tri=0;
			    while(temp<k){
			      temp*=2;
			      tri++;
			    }
			    ans+=1.000000000/(n*Math.pow(2,tri));
			 } {
			    long temp=i;
			    long tri=0;
			    while(temp<k){
			      temp*=2;
			      tri++;
			    }
			    ans+=1.000000000/(n*Math.pow(2,tri));
			 } long temp=i; temp i long tri=0; tri 0 while(temp<k){
			      temp*=2;
			      tri++;
			    } temp<k temp k {
			      temp*=2;
			      tri++;
			    } temp*=2 temp 2 tri++ tri ans+=1.000000000/(n*Math.pow(2,tri)) ans 1.000000000/(n*Math.pow(2,tri)) 1.000000000 (n*Math.pow(2,tri)) n Math.pow(2,tri) Math.pow Math 2 tri System.out.println(ans) System.out.println System.out System System.out ans String[]args args public class Main{
	public static void main(String[]args){
		double ans=0.000000000;
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int k=sc.nextInt();
		 for(int i=1;i<=n;i++){
			    long temp=i;
			    long tri=0;
			    while(temp<k){
			      temp*=2;
			      tri++;
			    }
			    ans+=1.000000000/(n*Math.pow(2,tri));
			 }
		 System.out.println(ans);
	}
} public class Main{
	public static void main(String[]args){
		double ans=0.000000000;
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int k=sc.nextInt();
		 for(int i=1;i<=n;i++){
			    long temp=i;
			    long tri=0;
			    while(temp<k){
			      temp*=2;
			      tri++;
			    }
			    ans+=1.000000000/(n*Math.pow(2,tri));
			 }
		 System.out.println(ans);
	}
} Main
import java.util.Scanner;
public class Main{
	public static void main(String[]args){
		double ans=0.000000000;
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int k=sc.nextInt();
		 for(int i=1;i<=n;i++){
			    long temp=i;
			    long tri=0;
			    while(temp<k){
			      temp*=2;
			      tri++;
			    }
			    ans+=1.000000000/(n*Math.pow(2,tri));
			 }
		 System.out.println(ans);
	}
}
