import math

N, K = list(map(lambda k: int(k), input().split(" ")))

# dice -> n
# n * 2^x >= K
# 2^x >= K / n
# x >= log2 (K / n)

p = [1 * (1/2) ** max([math.ceil(math.log2(K/(i + 1))), 0]) for i in range(N)]
print(sum(p)/N) import math math N, K = list(map(lambda k: int(k), input().split(" "))) N list(map(lambda k: int(k), input().split(" "))) list map(lambda k: int(k), input().split(" ")) map lambda k: int(k) int(k) int k k input().split(" ") ().split () input split " " K 1 * (1/2) ** max([math.ceil(math.log2(K/(i + 1))), 0]) for i in range(N) for i in range(N) i range(N) range N for i in range(N) 1 * (1/2) ** max([math.ceil(math.log2(K/(i + 1))), 0]) 1 (1/2) ** max([math.ceil(math.log2(K/(i + 1))), 0]) 1/2 1 2 max([math.ceil(math.log2(K/(i + 1))), 0]) max [math.ceil(math.log2(K/(i + 1))), 0] math.ceil(math.log2(K/(i + 1))) math.ceil math ceil math.log2(K/(i + 1)) math.log2 math log2 K/(i + 1) K i + 1 i 1 0 p = [1 * (1/2) ** max([math.ceil(math.log2(K/(i + 1))), 0]) for i in range(N)] p [1 * (1/2) ** max([math.ceil(math.log2(K/(i + 1))), 0]) for i in range(N)] print(sum(p)/N) print sum(p)/N sum(p) sum p N N, K = list(map(lambda k: int(k), input().split(" "))) list(map(lambda k: int(k), input().split(" "))) N p = [1 * (1/2) ** max([math.ceil(math.log2(K/(i + 1))), 0]) for i in range(N)] [1 * (1/2) ** max([math.ceil(math.log2(K/(i + 1))), 0]) for i in range(N)] p K = list(map(lambda k: int(k), input().split(" "))) list(map(lambda k: int(k), input().split(" "))) K
import math

N, K = list(map(lambda k: int(k), input().split(" ")))

# dice -> n
# n * 2^x >= K
# 2^x >= K / n
# x >= log2 (K / n)

p = [1 * (1/2) ** max([math.ceil(math.log2(K/(i + 1))), 0]) for i in range(N)]
print(sum(p)/N)