import java.util.Scanner;

public class Main {
	
	public static void main(String[] args){
		
		Scanner scanner = new Scanner(System.in);
		//サイコロの面の数
		int N = scanner.nextInt();
		//勝ち得点
		int K = scanner.nextInt();
		//サイコロを振る数
		int count;
		//各サイコロの目のときの確率
		double p = 0;
		//答え
		double answer = 0;
		
		//サイコロの目でループ
		for(int i = 1; i <= N; i++){
			count = i;
			p = 1.0/N;
				//サイコロの目が勝ち得点を超えるまでループ
				while(count < K){
					count *= 2;
					p /= 2.0;
				}
				answer += p;
		}
		System.out.println(answer);
	}
} import java.util.Scanner; Scanner java.util public class Main {
	
	public static void main(String[] args){
		
		Scanner scanner = new Scanner(System.in);
		//サイコロの面の数
		int N = scanner.nextInt();
		//勝ち得点
		int K = scanner.nextInt();
		//サイコロを振る数
		int count;
		//各サイコロの目のときの確率
		double p = 0;
		//答え
		double answer = 0;
		
		//サイコロの目でループ
		for(int i = 1; i <= N; i++){
			count = i;
			p = 1.0/N;
				//サイコロの目が勝ち得点を超えるまでループ
				while(count < K){
					count *= 2;
					p /= 2.0;
				}
				answer += p;
		}
		System.out.println(answer);
	}
} Main public static void main(String[] args){
		
		Scanner scanner = new Scanner(System.in);
		//サイコロの面の数
		int N = scanner.nextInt();
		//勝ち得点
		int K = scanner.nextInt();
		//サイコロを振る数
		int count;
		//各サイコロの目のときの確率
		double p = 0;
		//答え
		double answer = 0;
		
		//サイコロの目でループ
		for(int i = 1; i <= N; i++){
			count = i;
			p = 1.0/N;
				//サイコロの目が勝ち得点を超えるまでループ
				while(count < K){
					count *= 2;
					p /= 2.0;
				}
				answer += p;
		}
		System.out.println(answer);
	} main {
		
		Scanner scanner = new Scanner(System.in);
		//サイコロの面の数
		int N = scanner.nextInt();
		//勝ち得点
		int K = scanner.nextInt();
		//サイコロを振る数
		int count;
		//各サイコロの目のときの確率
		double p = 0;
		//答え
		double answer = 0;
		
		//サイコロの目でループ
		for(int i = 1; i <= N; i++){
			count = i;
			p = 1.0/N;
				//サイコロの目が勝ち得点を超えるまでループ
				while(count < K){
					count *= 2;
					p /= 2.0;
				}
				answer += p;
		}
		System.out.println(answer);
	} Scanner scanner = new Scanner(System.in); scanner new Scanner(System.in) int N = scanner.nextInt(); N scanner.nextInt() scanner.nextInt scanner int K = scanner.nextInt(); K scanner.nextInt() scanner.nextInt scanner int count; count double p = 0; p 0 double answer = 0; answer 0 for(int i = 1; i <= N; i++){
			count = i;
			p = 1.0/N;
				//サイコロの目が勝ち得点を超えるまでループ
				while(count < K){
					count *= 2;
					p /= 2.0;
				}
				answer += p;
		} int i = 1; int i = 1; i 1 i <= N i N i++ i++ i {
			count = i;
			p = 1.0/N;
				//サイコロの目が勝ち得点を超えるまでループ
				while(count < K){
					count *= 2;
					p /= 2.0;
				}
				answer += p;
		} {
			count = i;
			p = 1.0/N;
				//サイコロの目が勝ち得点を超えるまでループ
				while(count < K){
					count *= 2;
					p /= 2.0;
				}
				answer += p;
		} count = i count i p = 1.0/N p 1.0/N 1.0 N while(count < K){
					count *= 2;
					p /= 2.0;
				} count < K count K {
					count *= 2;
					p /= 2.0;
				} count *= 2 count 2 p /= 2.0 p 2.0 answer += p answer p System.out.println(answer) System.out.println System.out System System.out answer String[] args args public class Main {
	
	public static void main(String[] args){
		
		Scanner scanner = new Scanner(System.in);
		//サイコロの面の数
		int N = scanner.nextInt();
		//勝ち得点
		int K = scanner.nextInt();
		//サイコロを振る数
		int count;
		//各サイコロの目のときの確率
		double p = 0;
		//答え
		double answer = 0;
		
		//サイコロの目でループ
		for(int i = 1; i <= N; i++){
			count = i;
			p = 1.0/N;
				//サイコロの目が勝ち得点を超えるまでループ
				while(count < K){
					count *= 2;
					p /= 2.0;
				}
				answer += p;
		}
		System.out.println(answer);
	}
} public class Main {
	
	public static void main(String[] args){
		
		Scanner scanner = new Scanner(System.in);
		//サイコロの面の数
		int N = scanner.nextInt();
		//勝ち得点
		int K = scanner.nextInt();
		//サイコロを振る数
		int count;
		//各サイコロの目のときの確率
		double p = 0;
		//答え
		double answer = 0;
		
		//サイコロの目でループ
		for(int i = 1; i <= N; i++){
			count = i;
			p = 1.0/N;
				//サイコロの目が勝ち得点を超えるまでループ
				while(count < K){
					count *= 2;
					p /= 2.0;
				}
				answer += p;
		}
		System.out.println(answer);
	}
} Main
import java.util.Scanner;

public class Main {
	
	public static void main(String[] args){
		
		Scanner scanner = new Scanner(System.in);
		//サイコロの面の数
		int N = scanner.nextInt();
		//勝ち得点
		int K = scanner.nextInt();
		//サイコロを振る数
		int count;
		//各サイコロの目のときの確率
		double p = 0;
		//答え
		double answer = 0;
		
		//サイコロの目でループ
		for(int i = 1; i <= N; i++){
			count = i;
			p = 1.0/N;
				//サイコロの目が勝ち得点を超えるまでループ
				while(count < K){
					count *= 2;
					p /= 2.0;
				}
				answer += p;
		}
		System.out.println(answer);
	}
}