import 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 ans = 0;
    for(int i = 1; i <= n; i++) {
      int t = 0;
      int c = i;
      while(c < k) {
        c *= 2;
        t++;
      }
      ans += ((double)1 / ((double)n * (double)Math.pow(2, t)));
    }
    System.out.println(ans);
  }
} import java.util.*; util.* java public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int k = sc.nextInt();
    double ans = 0;
    for(int i = 1; i <= n; i++) {
      int t = 0;
      int c = i;
      while(c < k) {
        c *= 2;
        t++;
      }
      ans += ((double)1 / ((double)n * (double)Math.pow(2, t)));
    }
    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 ans = 0;
    for(int i = 1; i <= n; i++) {
      int t = 0;
      int c = i;
      while(c < k) {
        c *= 2;
        t++;
      }
      ans += ((double)1 / ((double)n * (double)Math.pow(2, t)));
    }
    System.out.println(ans);
  } main {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int k = sc.nextInt();
    double ans = 0;
    for(int i = 1; i <= n; i++) {
      int t = 0;
      int c = i;
      while(c < k) {
        c *= 2;
        t++;
      }
      ans += ((double)1 / ((double)n * (double)Math.pow(2, t)));
    }
    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 ans = 0; ans 0 for(int i = 1; i <= n; i++) {
      int t = 0;
      int c = i;
      while(c < k) {
        c *= 2;
        t++;
      }
      ans += ((double)1 / ((double)n * (double)Math.pow(2, t)));
    } int i = 1; int i = 1; i 1 i <= n i n i++ i++ i {
      int t = 0;
      int c = i;
      while(c < k) {
        c *= 2;
        t++;
      }
      ans += ((double)1 / ((double)n * (double)Math.pow(2, t)));
    } {
      int t = 0;
      int c = i;
      while(c < k) {
        c *= 2;
        t++;
      }
      ans += ((double)1 / ((double)n * (double)Math.pow(2, t)));
    } int t = 0; t 0 int c = i; c i while(c < k) {
        c *= 2;
        t++;
      } c < k c k {
        c *= 2;
        t++;
      } c *= 2 c 2 t++ t ans += ((double)1 / ((double)n * (double)Math.pow(2, t))) ans ((double)1 / ((double)n * (double)Math.pow(2, t))) (double)1 ((double)n * (double)Math.pow(2, t)) (double)n (double)Math.pow(2, t) Math.pow Math 2 t 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 ans = 0;
    for(int i = 1; i <= n; i++) {
      int t = 0;
      int c = i;
      while(c < k) {
        c *= 2;
        t++;
      }
      ans += ((double)1 / ((double)n * (double)Math.pow(2, t)));
    }
    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 ans = 0;
    for(int i = 1; i <= n; i++) {
      int t = 0;
      int c = i;
      while(c < k) {
        c *= 2;
        t++;
      }
      ans += ((double)1 / ((double)n * (double)Math.pow(2, t)));
    }
    System.out.println(ans);
  }
} Main
import 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 ans = 0;
    for(int i = 1; i <= n; i++) {
      int t = 0;
      int c = i;
      while(c < k) {
        c *= 2;
        t++;
      }
      ans += ((double)1 / ((double)n * (double)Math.pow(2, t)));
    }
    System.out.println(ans);
  }
}