
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		int N = sc.nextInt();
		int K = sc.nextInt();

		double dice=1/(double)N;
		double ans=0;

		for(int i=1;i<=N;i++) {
			int n=i;
			double m=dice;
			while(n<K) {
				n *= 2;
				m /= 2.0;
			}
			ans += m;
		}

		System.out.println(ans);

	}


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

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		int N = sc.nextInt();
		int K = sc.nextInt();

		double dice=1/(double)N;
		double ans=0;

		for(int i=1;i<=N;i++) {
			int n=i;
			double m=dice;
			while(n<K) {
				n *= 2;
				m /= 2.0;
			}
			ans += m;
		}

		System.out.println(ans);

	}


} Main public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		int N = sc.nextInt();
		int K = sc.nextInt();

		double dice=1/(double)N;
		double ans=0;

		for(int i=1;i<=N;i++) {
			int n=i;
			double m=dice;
			while(n<K) {
				n *= 2;
				m /= 2.0;
			}
			ans += m;
		}

		System.out.println(ans);

	} main {

		Scanner sc = new Scanner(System.in);

		int N = sc.nextInt();
		int K = sc.nextInt();

		double dice=1/(double)N;
		double ans=0;

		for(int i=1;i<=N;i++) {
			int n=i;
			double m=dice;
			while(n<K) {
				n *= 2;
				m /= 2.0;
			}
			ans += m;
		}

		System.out.println(ans);

	} 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 double dice=1/(double)N; dice 1/(double)N 1 (double)N double ans=0; ans 0 for(int i=1;i<=N;i++) {
			int n=i;
			double m=dice;
			while(n<K) {
				n *= 2;
				m /= 2.0;
			}
			ans += m;
		} int i=1; int i=1; i 1 i<=N i N i++ i++ i {
			int n=i;
			double m=dice;
			while(n<K) {
				n *= 2;
				m /= 2.0;
			}
			ans += m;
		} {
			int n=i;
			double m=dice;
			while(n<K) {
				n *= 2;
				m /= 2.0;
			}
			ans += m;
		} int n=i; n i double m=dice; m dice while(n<K) {
				n *= 2;
				m /= 2.0;
			} n<K n K {
				n *= 2;
				m /= 2.0;
			} n *= 2 n 2 m /= 2.0 m 2.0 ans += m ans m 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) {

		Scanner sc = new Scanner(System.in);

		int N = sc.nextInt();
		int K = sc.nextInt();

		double dice=1/(double)N;
		double ans=0;

		for(int i=1;i<=N;i++) {
			int n=i;
			double m=dice;
			while(n<K) {
				n *= 2;
				m /= 2.0;
			}
			ans += m;
		}

		System.out.println(ans);

	}


} public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		int N = sc.nextInt();
		int K = sc.nextInt();

		double dice=1/(double)N;
		double ans=0;

		for(int i=1;i<=N;i++) {
			int n=i;
			double m=dice;
			while(n<K) {
				n *= 2;
				m /= 2.0;
			}
			ans += m;
		}

		System.out.println(ans);

	}


} Main

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		int N = sc.nextInt();
		int K = sc.nextInt();

		double dice=1/(double)N;
		double ans=0;

		for(int i=1;i<=N;i++) {
			int n=i;
			double m=dice;
			while(n<K) {
				n *= 2;
				m /= 2.0;
			}
			ans += m;
		}

		System.out.println(ans);

	}


}