def p(n, k):
    if n >= k:
        return 1
    num = 0
    while n < k:
        n *= 2
        num += 1
    return 1 / 2 ** num

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

ans = 0
for n in range(1, N + 1):
    ans += p(n, K)

ans /= N

print(ans) def p(n, k):
    if n >= k:
        return 1
    num = 0
    while n < k:
        n *= 2
        num += 1
    return 1 / 2 ** num p if n >= k:
        return 1
     n >= k n k return 1 1 num = 0 num 0 while n < k:
        n *= 2
        num += 1
     n < k n k n *= 2 n 2 num += 1 num 1 return 1 / 2 ** num 1 / 2 ** num 1 2 ** num 2 num n n k k N, K = map(int, input().split()) N map(int, input().split()) map int input().split() ().split () input split K ans = 0 ans 0 for n in range(1, N + 1):
    ans += p(n, K) n range(1, N + 1) range 1 N + 1 N 1 ans += p(n, K) ans p(n, K) p n K ans /= N ans N print(ans) print ans ans /= N N ans ans += p(n, K) p(n, K) ans K = map(int, input().split()) map(int, input().split()) K ans = 0 0 ans N, K = map(int, input().split()) map(int, input().split()) N def p(n, k):
    if n >= k:
        return 1
    num = 0
    while n < k:
        n *= 2
        num += 1
    return 1 / 2 ** num def p(n, k):
    if n >= k:
        return 1
    num = 0
    while n < k:
        n *= 2
        num += 1
    return 1 / 2 ** num p
def p(n, k):
    if n >= k:
        return 1
    num = 0
    while n < k:
        n *= 2
        num += 1
    return 1 / 2 ** num

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

ans = 0
for n in range(1, N + 1):
    ans += p(n, K)

ans /= N

print(ans)