
import java.util.Scanner;

public class Main{
	
	

	public static void main(String[] args) {
		
	Scanner sc=new Scanner(System.in);

	double N=sc.nextInt();
	double K=sc.nextInt();
	
	double result=0;
	
	for(int i=1;i<=N;i++) {
		int j=0;
		while(true) {
			if(i*Math.pow(2, j)>=K) {
				
				result+=Math.pow(0.5, j)*(1/N);
				break;
			}
			j++;
		}
		
	}
	System.out.println(result);
	

		
	}
	

	
}
		 import java.util.Scanner; Scanner java.util public class Main{
	
	

	public static void main(String[] args) {
		
	Scanner sc=new Scanner(System.in);

	double N=sc.nextInt();
	double K=sc.nextInt();
	
	double result=0;
	
	for(int i=1;i<=N;i++) {
		int j=0;
		while(true) {
			if(i*Math.pow(2, j)>=K) {
				
				result+=Math.pow(0.5, j)*(1/N);
				break;
			}
			j++;
		}
		
	}
	System.out.println(result);
	

		
	}
	

	
} Main public static void main(String[] args) {
		
	Scanner sc=new Scanner(System.in);

	double N=sc.nextInt();
	double K=sc.nextInt();
	
	double result=0;
	
	for(int i=1;i<=N;i++) {
		int j=0;
		while(true) {
			if(i*Math.pow(2, j)>=K) {
				
				result+=Math.pow(0.5, j)*(1/N);
				break;
			}
			j++;
		}
		
	}
	System.out.println(result);
	

		
	} main {
		
	Scanner sc=new Scanner(System.in);

	double N=sc.nextInt();
	double K=sc.nextInt();
	
	double result=0;
	
	for(int i=1;i<=N;i++) {
		int j=0;
		while(true) {
			if(i*Math.pow(2, j)>=K) {
				
				result+=Math.pow(0.5, j)*(1/N);
				break;
			}
			j++;
		}
		
	}
	System.out.println(result);
	

		
	} Scanner sc=new Scanner(System.in); sc new Scanner(System.in) double N=sc.nextInt(); N sc.nextInt() sc.nextInt sc double K=sc.nextInt(); K sc.nextInt() sc.nextInt sc double result=0; result 0 for(int i=1;i<=N;i++) {
		int j=0;
		while(true) {
			if(i*Math.pow(2, j)>=K) {
				
				result+=Math.pow(0.5, j)*(1/N);
				break;
			}
			j++;
		}
		
	} int i=1; int i=1; i 1 i<=N i N i++ i++ i {
		int j=0;
		while(true) {
			if(i*Math.pow(2, j)>=K) {
				
				result+=Math.pow(0.5, j)*(1/N);
				break;
			}
			j++;
		}
		
	} {
		int j=0;
		while(true) {
			if(i*Math.pow(2, j)>=K) {
				
				result+=Math.pow(0.5, j)*(1/N);
				break;
			}
			j++;
		}
		
	} int j=0; j 0 while(true) {
			if(i*Math.pow(2, j)>=K) {
				
				result+=Math.pow(0.5, j)*(1/N);
				break;
			}
			j++;
		} true {
			if(i*Math.pow(2, j)>=K) {
				
				result+=Math.pow(0.5, j)*(1/N);
				break;
			}
			j++;
		} if(i*Math.pow(2, j)>=K) {
				
				result+=Math.pow(0.5, j)*(1/N);
				break;
			} i*Math.pow(2, j)>=K i*Math.pow(2, j) i Math.pow(2, j) Math.pow Math 2 j K {
				
				result+=Math.pow(0.5, j)*(1/N);
				break;
			} result+=Math.pow(0.5, j)*(1/N) result Math.pow(0.5, j)*(1/N) Math.pow(0.5, j) Math.pow Math 0.5 j (1/N) 1 N break; j++ j System.out.println(result) System.out.println System.out System System.out result String[] args args public class Main{
	
	

	public static void main(String[] args) {
		
	Scanner sc=new Scanner(System.in);

	double N=sc.nextInt();
	double K=sc.nextInt();
	
	double result=0;
	
	for(int i=1;i<=N;i++) {
		int j=0;
		while(true) {
			if(i*Math.pow(2, j)>=K) {
				
				result+=Math.pow(0.5, j)*(1/N);
				break;
			}
			j++;
		}
		
	}
	System.out.println(result);
	

		
	}
	

	
} public class Main{
	
	

	public static void main(String[] args) {
		
	Scanner sc=new Scanner(System.in);

	double N=sc.nextInt();
	double K=sc.nextInt();
	
	double result=0;
	
	for(int i=1;i<=N;i++) {
		int j=0;
		while(true) {
			if(i*Math.pow(2, j)>=K) {
				
				result+=Math.pow(0.5, j)*(1/N);
				break;
			}
			j++;
		}
		
	}
	System.out.println(result);
	

		
	}
	

	
} Main

import java.util.Scanner;

public class Main{
	
	

	public static void main(String[] args) {
		
	Scanner sc=new Scanner(System.in);

	double N=sc.nextInt();
	double K=sc.nextInt();
	
	double result=0;
	
	for(int i=1;i<=N;i++) {
		int j=0;
		while(true) {
			if(i*Math.pow(2, j)>=K) {
				
				result+=Math.pow(0.5, j)*(1/N);
				break;
			}
			j++;
		}
		
	}
	System.out.println(result);
	

		
	}
	

	
}
		