import math
N, K = map(int, input().split())

def return_prob(x):
  if K <= x:
    return 1
  else:
    return 1 / (2 ** math.ceil(math.log2(K/x)))

prob = 0
for i in range(1, N+1):
  prob += return_prob(i)
prob /= N
print(prob) import math math N, K = map(int, input().split()) N map(int, input().split()) map int input().split() ().split () input split K def return_prob(x):
  if K <= x:
    return 1
  else:
    return 1 / (2 ** math.ceil(math.log2(K/x))) return_prob if K <= x:
    return 1
  else:
    return 1 / (2 ** math.ceil(math.log2(K/x))) K <= x K x return 1 1 return 1 / (2 ** math.ceil(math.log2(K/x))) 1 / (2 ** math.ceil(math.log2(K/x))) 1 2 ** math.ceil(math.log2(K/x)) 2 math.ceil(math.log2(K/x)) math.ceil math ceil math.log2(K/x) math.log2 math log2 K/x K x x x prob = 0 prob 0 for i in range(1, N+1):
  prob += return_prob(i) i range(1, N+1) range 1 N+1 N 1 prob += return_prob(i) prob return_prob(i) return_prob i prob /= N prob N print(prob) print prob prob = 0 0 prob K = map(int, input().split()) map(int, input().split()) K prob += return_prob(i) return_prob(i) prob prob /= N N prob def return_prob(x):
  if K <= x:
    return 1
  else:
    return 1 / (2 ** math.ceil(math.log2(K/x))) def return_prob(x):
  if K <= x:
    return 1
  else:
    return 1 / (2 ** math.ceil(math.log2(K/x))) return_prob N, K = map(int, input().split()) map(int, input().split()) N
import math
N, K = map(int, input().split())

def return_prob(x):
  if K <= x:
    return 1
  else:
    return 1 / (2 ** math.ceil(math.log2(K/x)))

prob = 0
for i in range(1, N+1):
  prob += return_prob(i)
prob /= N
print(prob)